我使用SQLAlchemy制作了一个表,但忘记添加一列。我基本上想这样做:
users.addColumn('user_id', ForeignKey('users.user_id'))
它的语法是什么?我在文档里找不到。
发布于 2011-09-05 01:35:40
这称为数据库迁移(SQLAlchemy不支持开箱即用的迁移)。您可以考虑使用sqlalchemy-migrate在这类情况下提供帮助,或者只需通过所选数据库的命令行实用程序使用ALTER TABLE
,
发布于 2013-06-22 03:42:54
我也有同样的问题,一想到只为这些微不足道的事情使用迁移库,我就不由自主地
颤抖吧。无论如何,这是我到目前为止的尝试:
def add_column(engine, table_name, column):
column_name = column.compile(dialect=engine.dialect)
column_type = column.type.compile(engine.dialect)
engine.execute('ALTER TABLE %s ADD COLUMN %s %s' % (table_name, column_name, column_type))
column = Column('new_column_name', String(100), primary_key=True)
add_column(engine, table_name, column)
尽管如此,我仍然不知道如何将primary_key=True
插入到原始SQL请求中。
发布于 2012-04-26 16:07:55
请参阅SQLAlchemy文档的这一部分:http://docs.sqlalchemy.org/en/latest/core/metadata.html#altering-schemas-through-migrations
Alembic是提供此类型功能的最新软件,并且与SQLAlchemy由同一作者开发。
https://stackoverflow.com/questions/7300948
复制相似问题