반응형

파이썬, 테이블 생성 및 복사 예제 (SqlAlchemy)

 

import sqlalchemy as sa
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 데이터베이스 연결
engine = sa.create_engine('sqlite:///example.db', echo=True)

# DB 세션 객체 생성
Session = sessionmaker(bind=engine)
session = Session()

# Base 클래스 생성
Base = declarative_base()

# 테이블 정의
class T1(Base):
    __tablename__ = 't1'
    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String)
    data = sa.Column(sa.String)

class T2(Base):
    __tablename__ = 't2'
    id = sa.Column(sa.Integer, primary_key=True)
    name = sa.Column(sa.String)
    data = sa.Column(sa.String)

# 테이블 새로 생성하려면
# Base.metadata.create_all(engine)

# 기존 t1 테이블 내용 모두 삭제하려면
# session.query(t1).delete()
# session.commit()


# t2 테이블 내용을 t1 테이블에 복사 
for t2_record in session.query(t2):
    new_t1_record = t1(id=t2_record.id, name=t2_record.name, data=t2_record.data)
    session.add(new_t1_record)

session.commit()
반응형

+ Recent posts