【问题标题】:How to generate data in an Alembic migration i.e --autogenerate如何在 Alembic 迁移中生成数据,即 --autogenerate
【发布时间】:2019-11-05 15:43:31
【问题描述】:

我可以成功生成数据库模型,但我似乎不知道如何用数据填充数据库。

我相信错误在于我用来自动生成的命令

alembic -x data=true upgrade head

不产生任何数据,但在查看我生成的文件后,data_upgrade() 或 data_downgrade() 中没有任何内容。

我用来生成自动迁移的命令是

alembic revision --autogenerate -m "migration_objective"

然后将 head 升级到预期的值,但任何表中都没有数据。

我是否缺少选项标志?我似乎找不到有关在此阶段使用的其他标志的文档。

【问题讨论】:

    标签: python sql database alembic


    【解决方案1】:

    Alembic AutoGenerate will not detect data changes

    您需要将数据从数据库中提取到 CSV 文件之类的文件中,然后您可以在升级期间对其进行解析并插入到数据库中

    【讨论】:

    • 本身没有变化,初始化是我正在寻找的。我动态创建多个测试数据库的唯一方法是使用 Alembic 创建结构,然后使用 sqldump 将其还原为备份副本。这还不错,但是如果不用在 data_upgrade() 下手动输入数据,就可以滚动到一个迁移脚本中。我没有看到 Alembic 能够解析 .csv 数据,这是一项功能吗?
    • @Lukabratzee 不幸的是,不,没有类似的东西内置在 alembic 中。如果您正在寻找比 csv 文件或 sqldump 更动态的东西,您可以利用 sqlalchemy。 inspector 可以帮助动态创建 ddl,您还可以创建函数来从原始表中查询数据并插入到新表中
    猜你喜欢
    • 2013-03-17
    • 2019-04-30
    • 2013-05-25
    • 2022-11-10
    • 2016-09-06
    • 2012-06-26
    • 1970-01-01
    • 2020-11-05
    • 2013-06-16
    相关资源
    最近更新 更多