我有一个名为Sliders
的应用程序,并且已经创建了模型。我该如何运行迁移,这样只会创建数据库表,但django_migrations
表中没有新条目,应用程序目录中也没有创建目录migrations
。
这是我通常做的事情:
创建模型后,制作迁移文件:python manage.py makemigrations sliders
然后我运行迁移文件:python manage.py migrate sliders
这将在Sliders应用程序中创建一个迁移目录,并将行插入django_migrations
表。我该如何防止这种情况发生?只想在数据库中创建表。
如果您想在不生成任何迁移或向django_migrations
添加条目的情况下迁移某些内容,则可以在迁移时使用--run-syncdb
标志[Django-docs]:
python manage.py migrate sliders --run-syncdb
引用自上述链接文件:
允许在不迁移的情况下为应用程序创建表。虽然这不是建议,迁移框架有时在很大程度上太慢拥有数百个模型的项目。
在上面的语句中,有一点不太明显,那就是如果应用程序已经应用了迁移,那么这将不起作用。
注意:我想提醒您文档中已经考虑过的一点">这是不推荐的";。除非你真的需要这样做并且知道你在做什么我不会推荐这样做。
您的INSTALLED_APPS
应该是这样的:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
...
'sliders',
]
尝试一些命令:
python manage.py makemigrations # Check for changes, ignore if nothing
python manage.py migrate # Apply changes, ignore if nothing
python manage.py syncdb
如果没有,请重新迁移DB
python manage.py migrate --fake sliders zero
python manage.py migrate