我创建了一个由单个应用程序组成的新Django项目。我认为只有在迁移存在的情况下,Django才会迁移应用程序。
我第一次运行python manage.py migrate
时,Django也会为我的应用创建表格(我为我的应用创建了models.py)
到目前为止,我还没有运行python manage.py makemigrations app
或python manage.py makemigrations
。
我会在运行python manage.py migrate
时获得以下输出:
Synchronizing apps without migrations:
Creating tables...
Creating table app_model
这不是我想要的,因为下次我实际为应用程序进行迁移并运行迁移时,Django会抱怨这些表已经存在。
答案 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
再次使用makemigrations
和migrate
返回。但我不明白你为什么要这样。