gpt4 book ai didi

python - flask db migrate 不要更改列设置

转载 作者:行者123 更新时间:2023-12-05 01:29:09 26 4
gpt4 key购买 nike

我正在使用带有 flask-migrate 的 sql-alchemy。我用这样的东西设置了我的数据库类:

class Candidate(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), index=False, unique=False)
interviewer = db.Column(db.String(32), index=False, unique=False)

不幸的是有些值太长所以我得到了错误:

sqlalchemy.exc.DataError:(psycopg2.errors.StringDataRightTruncation)值太长,类型字符不同(32)

不确定问题出在哪一列(实际类要复杂得多)我这样更改了类:

class Candidate(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=False, unique=False)
interviewer = db.Column(db.String(64), index=False, unique=False)

然后运行:

flask db migrate
flask db upgrade

应用更改。不幸的是,我仍然收到同样的错误。我做错了什么?

最佳答案

Alembic(Flask-Migrate 背后的迁移引擎)默认情况下不会将数据类型更改放入迁移中,因此您从 32 到 64 的更改可能会被忽略。您可以通过查看生成的迁移脚本来确认。

要配置 Alembic 以监视列类型更改,您必须在创建 Migrate 类时添加 compare_type=True 选项:

migrate = Migrate(app, db, compare_type=True)

完成此操作后,重新生成您的迁移,它应该包含使您的列变大的代码。

关于python - flask db migrate 不要更改列设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67973067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com