我能够使用alembic --autogenerate
用于添加/删除列时。
但是,当我想将“url”列从 200 个字符修改为 2000 个字符时,它不会检测到更改。
我如何制作 Alembic(使用 SQLAlchemy),检测更改并自动生成模型各列“大小”的脚本,并为 PostgreSQL 创建“alter_column”命令?
Edit:
为什么 alembic 不自动添加:
op.alter_column('mytable', 'url', type_=sa.String(2000), existing_type=sa.String(length=200), nullable=True)
看起来我在 reddit 的 /r/flask 上找到了答案。
http://www.reddit.com/r/flask/comments/1glejl/alembic_autogenerate_column_changes/cale9o0 http://www.reddit.com/r/flask/comments/1glejl/alembic_autogenerate_column_changes/cale9o0
只需将“compare_type=True”添加到 env.py 的“run_migrations_online”函数中的 context.configure() 参数即可。
context.configure(
connection=connection,
target_metadata=target_metadata,
compare_type=True
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)