MySQL数据库迁移:字符串长度的变化

lan*_*ng2 3 python mysql alembic

我正在使用 SQLAlchemy + alembic 来管理我的数据库。我有一个 10 个字符长的字符串字段,后来发现它必须是 20 个字符。所以我更新了模型定义。

class Foo(db.Model):
    __tablename__ = 'foos'
    id = db.Column(db.Integer, primary_key=True)
    foo_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    name = db.Column(db.String(80))
Run Code Online (Sandbox Code Playgroud)

当我运行时alembic revision --autogenerate,没有检测到这一点。现在我确实阅读了文档并怀疑这可能不受支持。我如何优雅地管理数据库中的此类更改?

Cia*_*man 5

您需要启用可选的列类型检查。有关默认检查内容的注释,请参阅此内容

context.configure(
    # ...
    compare_type = True
)
Run Code Online (Sandbox Code Playgroud)