Django迁移app而不迁移

时间:2016-01-09 15:30:11

标签: python django

我创建了一个由单个应用程序组成的新Django项目。我认为只有在迁移存在的情况下,Django才会迁移应用程序。

我第一次运行python manage.py migrate时,Django也会为我的应用创建表格(我为我的应用创建了models.py)

到目前为止,我还没有运行python manage.py makemigrations apppython manage.py makemigrations

我会在运行python manage.py migrate时获得以下输出:

Synchronizing apps without migrations:
  Creating tables...
    Creating table app_model

这不是我想要的,因为下次我实际为应用程序进行迁移并运行迁移时,Django会抱怨这些表已经存在。

2 个答案:

答案 0 :(得分:3)

您可以创建迁移,并假冒第一次迁移:

python manage.py makemigrations <app_name>
python manage.py migrate --fake-initial

这将跳过已为其创建表的任何初始迁移。

Django(1.9之前版)会同步任何无法迁移的应用,请参阅migrate上的文档:

  

此命令的行为会根据提供的参数而更改:

     
      
  • 没有参数:所有迁移的应用都会运行所有迁移,所有未迁移的应用都会与数据库同步
  •   

答案 1 :(得分:0)

如果您想为应用保存migrations,那么您已经迁移了。您可以在模型中更改一个字段,然后makemigrations this_app - &gt; migrate再次使用makemigrationsmigrate返回。但我不明白你为什么要这样。