2016-11-17 1 views
1

Flask-SQLAlchemy 데이터베이스에 테이블이 있는지 확인하십시오. 비슷한 문제가 있지만 성공하지 못합니다. 데이터베이스에 존재하는 경우 Flask-SQLAlchemy 데이터베이스에 테이블이 있는지 확인하십시오.

<class'flask_sqlalchemy.XXX'>, 

지금 어떻게 개체를 확인 :

Flask-SQLAlchemy check if row exists in table

나는 다음과 같은 테이블 개체를 만들 수 있습니다.

나는 많은 시도를 수행 예 :

for t in db.metadata.sorted_tables: 
      print("tablename",t.name) 

일부 테이블 개체가 이전에 만들어집니다하지만 나던 데이터베이스에 존재하고, 지금. 모두 인쇄. 예 : 인쇄 내용이

tablename: table_1 
tablename: table_2 
tablename: table_3 

하지만, 시일을 추정, table_2 존재하고 table_3가 지금 만 된 table_1를 사용하려면, 생성 dynamica 만 된 table_1.

매우 감사합니다.

+0

사용'MetaData' : http://docs.sqlalchemy.org/en/latest/core/metadata.html – Chr

+0

나는 노력하지만 캔트, 나는, 덕분 prolem를 업데이트합니다. – user3804623

+0

문제를 이해할 수 없습니다. 'table_1'을 (를) 편집 하시겠습니까? – Chr

답변

0

나는이 방법을 사용했다. 당신처럼 모델을 보았을 때 데이터베이스에 무엇이 있어야하는지 알려줍니다. `sqlalchemy`에서

import sqlalchemy as sa 

def database_is_empty(): 
    table_names = sa.inspect(engine).get_table_names() 
    is_empty = table_names == [] 
    print('Db is empty: {}'.format(is_empty)) 
    return is_empty 

def table_exists(name): 
    ret = engine.dialect.has_table(engine, name) 
    print('Table "{}" exists: {}'.format(name, ret)) 
    return ret 
관련 문제