2016-09-25 30 views
0

我创建了一个自定义迁移“0000_initial_data.py”,我希望在所有其他迁移完成后应用该迁移。尽管当我尝试在依赖项中使用____latest____时,我得到“依赖项引用不存在的父节点”错误,但我觉得它正试图在文件夹中找到____最新命名的迁移,但它无法找到。我有一个想法,在myapp/migrations中找到最新的迁移/使用“ls -Art | tail -n 1”,它给了我0001_initial.pyc [pyc]文件而不是最新的迁移.py文件。虽然即使我得到我有使用shell脚本在自定义迁移文件替换像检索自定义迁移的最后一次迁移,以加载初始数据

$ replace '__latest__' 'output of ls -Art' -- 0000_initial_data.py 

为我自动部署我的最新迁移的名称。我想知道从项目中的所有myapps获得最新迁移并在其后插入自定义迁移的最佳方式。

注:使用Django == 1.8.13,Ubuntu的14.04,蟒蛇2.7

回答

1

一般定制迁移用于改变现有的数据。如果您想创建新数据,我建议您将代码放入管理命令中并在所有迁移后运行该命令。

+1

这实际上为我工作。 跟着步骤这里 http://janetriley.net/2014/11/quick-how-to-custom-django-management-commands.html 创建自定义命令和它的工作就像一个魅力。 Thanks @Mehdi Pourfar –

+1

如果您使用的是django_extensions,只需调用以下命令即可创建路径和文件: './manage.py create_command app_name' –

+0

这样可以节省我的文件创建时间。虽然不得不创建2个文件夹和1个文件,所以我的每一个时间都没有。感谢这一点,应该帮助我在未来的应用程序。 –