[英]Flask-SQLAlchemy check if table exists in database
Flask-SQLAlchemy檢查數據庫中是否存在表。 我看到類似的問題,但我盡量不成功。
我創建了一個表對象,如下所示:
<class'flask_sqlalchemy.XXX'>,
現在如何檢查對象是否存在於數據庫中。
我做了很多嘗試:例如:
for t in db.metadata.sorted_tables:
print("tablename",t.name)
之前創建了一些表對象,但它在數據庫中並不存在,現在它們已經存在。 所有印刷品。 例如:打印內容是
tablename: table_1
tablename: table_2
tablename: table_3
但只有table_1存在數據,table_2和table_3是dynamica創建的,現在我只想使用table_1。
很感謝。
我用過這些方法。 像你一樣看模型只會告訴你應該在數據庫中做什么。
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
可能有一個比這更簡單的方法:
def model_exists(model_class):
engine = db.get_engine(bind=model_class.__bind_key__)
return model_class.metadata.tables[model_class.__tablename__].exists(engine)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.