【发布时间】:2019-02-20 05:10:18
【问题描述】:
我已将 django 应用程序部署到 heroku,但我需要重置这些迁移。如果不删除整个项目并重新部署它,这可能吗?我在那个数据库中有一些测试数据,我不想重新输入。
我想删除所有迁移文件并创建新文件。问题是,我从本地机器上删除了所有迁移文件并创建了新文件,所以现在我本地机器上的迁移文件都是 001。将其推送到 heroku 表示没有任何更改,因为 001 迁移文件已经存在于那里。只有删除它们才会起作用。基本上类似于
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc" -delete
但是对于heroku。
【问题讨论】:
-
“重置那些迁移”到底是什么意思。您是否已经对数据库应用了一些迁移?在这种情况下,您可以使用
python manage.py migrate myapp 0005来反向迁移,其中0005是您要恢复到的迁移。 -
是的。我已经申请了一些迁移,但我不一定想恢复到某个迁移,我想只是摆脱所有这些迁移并进行新的迁移。
-
@NelsonKing,我很困惑。一方面听起来你想
migrate zero甚至删除迁移文件并创建新文件,但另一方面你说“我在那个数据库中有一些测试数据,我不想全部输入再次。”你能扩展最后一点吗?您在这里的实际目标是什么? -
我想删除所有迁移文件并创建新文件。问题是,我从本地机器上删除了所有迁移文件并创建了新文件,所以现在我本地机器上的迁移文件都是 001。将其推送到 heroku 表示没有任何更改,因为 001 迁移文件已经存在于那里。只有删除它们才会起作用。基本上类似于
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete find . -path "*/migrations/*.pyc" -delete但对于heroku。