본문 바로가기
파이썬

파이썬 테이블이없는 경우 SQLalchemy

by º기록 2020. 11. 14.
반응형

빈 데이터베이스 파일을 만드는 모듈을 작성했습니다.

def create_database():
    engine = create_engine("sqlite:///myexample.db", echo=True)
    metadata = MetaData(engine)
    metadata.create_all()

그러나 다른 함수에서 myexample.db 데이터베이스를 열고 해당 테이블이 아직없는 경우 테이블을 만들고 싶습니다.

내가 만들 첫 번째 후속 테이블의 EG는 다음과 같습니다.

Table(Variable_TableName, metadata,
       Column('Id', Integer, primary_key=True, nullable=False),
       Column('Date', Date),
       Column('Volume', Float))

(처음에는 빈 데이터베이스이므로 테이블이 없지만 이후에 더 많은 테이블을 추가 할 수 있습니다. 그게 제가 말하려는 것입니다.)

어떤 제안?

 

해결 방법

 

나는 내가 무엇을하려고하는지 알아낼 수 있었다. engine.dialect.has_table (engine, Variable_tableName) 을 사용하여 데이터베이스 내부에 테이블이 있는지 확인했습니다. 만약 그렇지 않은 경우 데이터베이스에 테이블 생성을 진행합니다.

샘플 코드 :

engine = create_engine("sqlite:///myexample.db")  # Access the DB Engine
if not engine.dialect.has_table(engine, Variable_tableName):  # If table don't exist, Create.
    metadata = MetaData(engine)
    # Create a table with the appropriate Columns
    Table(Variable_tableName, metadata,
          Column('Id', Integer, primary_key=True, nullable=False), 
          Column('Date', Date), Column('Country', String),
          Column('Brand', String), Column('Price', Float),
    # Implement the creation
    metadata.create_all()

이것은 내가 찾고있는 것을주는 것 같습니다.

 

참조 페이지 https://stackoverflow.com/questions/33053241

 

 

반응형

댓글