jon*_*omo 39 django database-migration django-south django-1.7 django-migrations
所以我现在正在快速迭代一个django应用程序,我不断调整models.py.在一两天的编程和测试过程中,我生成了几十个迁移文件.有时候我真的撕开了架构并完全重新做了.这会导致迁移过程对默认值和空值等抱怨很多.如果可能的话,我只想抓住所有迁移的东西并重新开始迁移,因为我终于知道我在做什么了.到目前为止,我的方法如下:
__init__.py.DELETE FROM south_migrationhistory WHERE app_name='my_app';./manage.py makemigrations my_app- 这会0001_initial.py在我的迁移文件夹中生成一个文件../manage migrate my_app- 我希望这个命令重新构建我的所有表,但是它说:"没有要应用的迁移."是什么赋予了?
此外,south_migrationhistory数据库表现在仍然在播放,我已经转向南并已切换到Django 1.7?
谢谢.
jon*_*omo 34
因此,我在问题中概述的分步计划确实有效,但south_migrationhistory我不得不从数据库表中删除行,而是从数据库表中删除行django_migrations.
命令是: DELETE FROM django_migrations WHERE app='my_app'
完成此操作后,您将能够从头开始重新运行迁移.
mim*_*lea 20
我只想将所有步骤放入命令格式:
注意:下面的命令非常具有破坏性,它是start from scratchOP所要求的手段.
在mikeb我发表评论后,我想添加这一行:
预先检查您要删除的文件
find . -path *migrations* -name "*.py" -not -path "*__init__*"
然后,将步骤中的命令调整为1适用于您的开发环境的命令.
find . -path *migrations* -name "*.py" -not -path "*__init__*" -exec rm {} \; # make sure to be in your projects pathRun Code Online (Sandbox Code Playgroud)
sudo -u postgres bash -c "psql -c \"DROP DATABASE rootedin;\""
sudo -u postgres bash -c "psql -c \"CREATE DATABASE rootedin;\""
sudo -u postgres bash -c "psql -c \"GRANT ALL PRIVILEGES ON DATABASE rootedin to vagrant;\"" # vagrant is my current userRun Code Online (Sandbox Code Playgroud)
python3 manage.py makemigrations
python3 manage.py migrate
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34380 次 |
| 最近记录: |