【问题标题】:Retrieve the last migration for a custom migration, to load initial data检索自定义迁移的最后一次迁移,以加载初始数据
【发布时间】:2017-02-02 17:15:05
【问题描述】:

我创建了一个自定义迁移“0000_initial_data.py”,我希望在所有其他迁移完成后应用它。虽然当我尝试在依赖项中使用____latest____ 时出现“依赖项引用不存在的父节点”错误,但我觉得它试图在文件夹中找到__latest____ 命名迁移但无法找到。我想到了使用“ls -Art | tail -n 1”在 myapp/migrations/ 中找到最新迁移的想法,这给了我 0001_initial.pyc [pyc] 文件,而不是最新的迁移 .py 文件。尽管即使我获得了最新迁移的名称,我也必须使用类似

的 shell 脚本在自定义迁移文件中进行替换
$ replace '__latest__' 'output of ls -Art' -- 0000_initial_data.py 

我正在自动化我的部署。我想知道从项目中的所有 myapps 获取最新迁移并在其后插入我的自定义迁移的最佳方法。

注意:使用 django==1.8.13、ubuntu 14.04、python 2.7

【问题讨论】:

    标签: python django django-migrations


    【解决方案1】:

    通常自定义迁移用于更改现有数据。如果您想创建新数据,我建议您将代码放在管理命令中,并在所有迁移后运行。

    【讨论】:

    • 这实际上对我有用。按照这里的步骤janetriley.net/2014/11/… 创建自定义命令,它就像一个魅力。谢谢@Mehdi Pourfar
    • 如果你使用 django_extensions,你可以通过简单地调用这个命令来创建路径和文件:./manage.py create_command app_name
    • 这样可以节省我的文件创建时间。虽然必须创建 2 个文件夹和 1 个文件,但我的时间并不多。也谢谢你,应该在以后的应用中帮助我。
    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多