SQLAlchemy:更新表结构

时间:2017-06-28 09:16:14

标签: python sql-server-2012 sqlalchemy

我使用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定义的表结构。

1 个答案:

答案 0 :(得分:1)

我认为您忘记了将元数据绑定到引擎。首先创建引擎,然后使用引擎从数据库读取元数据。

metadata = db.MetaData(bind=engine)
test17 = db.Table('test17', metadata, autoload=True)