我有一个名为Sliders的应用程序,并创建了这些模型。如何运行迁移,只创建数据库表,但django_migrations表中没有新条目,也没有在app目录中创建目录migrations。
我通常是这样做的:
创建模型后,生成迁移文件:python manage.py makemigrations sliders
然后运行迁移文件:python manage.py migrate sliders
这将在Sliders应用程序中创建一个迁移目录,并将行插入到django_migrations表中。我怎么才能防止这件事?只想在数据库中创建表。
发布于 2021-04-24 17:10:54
如果您想迁移某些东西而不生成任何迁移或向django_migrations添加条目,则可以在迁移时使用--run-syncdb flag [Django docs]:
python manage.py migrate sliders --run-syncdb如上述链接文件中所引用的:
允许在没有迁移的情况下为应用程序创建表。虽然不建议这样做,但迁移框架有时在具有数百个模型的大型项目上过于缓慢。
在上面的声明中,一个不太明显的问题是,如果应用程序已经应用了迁移,这是行不通的。
Note:我想提醒您注意文档中已经考虑过的一点:“这是不推荐的”。除非您真的需要这样做,并且知道您在做什么,否则我不会建议您这样做。
发布于 2021-04-24 15:13:31
您的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 migratehttps://stackoverflow.com/questions/67244152
复制相似问题