MySQL数据库迁移:字符串长度更改

3

我正在使用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))

当我运行alembic revision --autogenerate命令时,这个更改并没有被检测到。我已经阅读了文档并怀疑这可能不受支持。那么如何优雅地管理数据库的这些更改呢?
1个回答

5

您需要启用可选的列类型检查。请参见此处,了解默认情况下检查的内容说明。

context.configure(
    # ...
    compare_type = True
)

我有与提问者相同的问题,但这个更改实际上并没有解决我的问题。我点了一个赞,因为它仍然有用,但我不认为添加compare_type = True可以识别长度已经改变的字符串列。 - Eugene Brown

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接