我使用SQLALchemy在服务器上创建了表:
from sqlalchemy import create_engine, Table, Column, String, MetaData
engine = create_engine('mssql://server/database?driver=SQL+Server&trusted_connection=yes')
meta = MetaData()
table = Table('test17', meta,
Column('id', Integer, primary_key=True),
Column('name', String('255'))
)
metadata.create_all(engine)
然后我使用SSMS 2012连接到此数据库并添加了一个新列:
ALTER TABLE test17 ADD age INT NULL
如何告诉使用SQLALchemy表中是否出现了新列?
我尝试过这样的事情:
meta2 = MetaData()
table = Table('test17', meta, autoload=True, autoload_with=engine)
但最后我得到了我最初使用SQLALchemy定义的表结构。
答案 0 :(得分:1)
我认为您忘记了将元数据绑定到引擎。首先创建引擎,然后使用引擎从数据库读取元数据。
metadata = db.MetaData(bind=engine)
test17 = db.Table('test17', metadata, autoload=True)