gpt4 book ai didi

python - 使用 Alembic 的 SqlAlchemy 创建 double 列

转载 作者:行者123 更新时间:2023-11-29 07:54:19 24 4
gpt4 key购买 nike

我需要在 MYSQL 数据库中使用 DOUBLE 列。我读过文档,建议我使用精度为 64 的 Float。然而,这似乎不起作用。我最终得到了一个常规的浮点列,并且所需的精度不存在。

我也尝试过:

from sqlalchemy.dialects.mysql import DOUBLE  #and in the model:
item = db.Column(DOUBLE())

但是,在迁移时,Flask-Migrate 似乎无法区分前一列和新列之间的差异,并生成空迁移。

我读到了这个:No changes detected in Alembic autogeneration of migrations with Flask-SQLAlchemyhttps://github.com/miguelgrinberg/Flask-Migrate/issues/24

并尝试在alembic设置中设置compare_type=True,但Float和Double类型之间仍然没有注册差异。

我知道我可以手动切换数据库中的列,但是如何使用 sqlalchemy 强制执行 double 列?

最佳答案

设置compare_type=TrueEnvironmentContext 上应该可以工作(并且对我有用)。如果您在尝试自动生成此操作时仍然遇到问题,您始终可以手动将此操作添加到迁移中。

def upgrade():
#...
op.alter_column('my_table', 'my_column', type_=DOUBLE, existing_nullable=False)
#...

总的来说,Alembic 在自动生成迁移方面并不完美。最好先检查迁移脚本并根据需要进行编辑。

关于python - 使用 Alembic 的 SqlAlchemy 创建 double 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25549375/

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