sqlalchemy创建mysql表,但我修改了表现在说'未知列url'

时间:2010-07-31 04:25:48

标签: python sqlalchemy

我在表格中添加了一个网址列,现在sqlalchemy正在说“未知列网址”。

为什么不更新表格?

创建会话时必须有设置吗?

我在做:

Session = sessionmaker(bind=engine)

我有什么遗失的吗?

我希望它能更新任何没有我在python代码中添加到我的表结构中的属性的表。

2 个答案:

答案 0 :(得分:1)

我不确定SQLAlchemy是否支持模式迁移(至少我上次触摸它时,它不存在)。

有两种选择。

  1. 不要手动指定表格。使用autoload功能让SQLAlchemy自动读出数据库中的列。这将需要测试以确保它的工作,但你通常会得到这个想法。 DRY
  2. 试试SQLAlchemy migrate
  3. 更改模型规范后手动更新表格。

答案 1 :(得分:1)

如果您只是添加新列,则可以安全地使用metadata.create_all(bind=engine)从类定义更新架构。

但是,如果在SQLA定义中删除它们,则不会修改现有列或从DB模式中删除列。