首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不创建新文件/ django_session行的情况下测试迁移

如何在不创建新文件/ django_session行的情况下测试迁移
EN

Stack Overflow用户
提问于 2021-04-24 14:59:30
回答 2查看 177关注 0票数 0

我有一个名为Sliders的应用程序,并创建了这些模型。如何运行迁移,只创建数据库表,但django_migrations表中没有新条目,也没有在app目录中创建目录migrations

我通常是这样做的:

创建模型后,生成迁移文件:python manage.py makemigrations sliders

然后运行迁移文件:python manage.py migrate sliders

这将在Sliders应用程序中创建一个迁移目录,并将行插入到django_migrations表中。我怎么才能防止这件事?只想在数据库中创建表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-24 17:10:54

如果您想迁移某些东西而不生成任何迁移或向django_migrations添加条目,则可以在迁移时使用--run-syncdb flag [Django docs]

代码语言:javascript
复制
python manage.py migrate sliders --run-syncdb

如上述链接文件中所引用的:

允许在没有迁移的情况下为应用程序创建表。虽然不建议这样做,但迁移框架有时在具有数百个模型的大型项目上过于缓慢。

在上面的声明中,一个不太明显的问题是,如果应用程序已经应用了迁移,这是行不通的。

Note:我想提醒您注意文档中已经考虑过的一点:“这是不推荐的”。除非您真的需要这样做,并且知道您在做什么,否则我不会建议您这样做。

票数 1
EN

Stack Overflow用户

发布于 2021-04-24 15:13:31

您的INSTALLED_APPS应该是这样的:

代码语言:javascript
复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    ...
    'sliders',
]

尝试一些命令:

代码语言:javascript
复制
python manage.py makemigrations  # Check for changes, ignore if nothing
python manage.py migrate # Apply changes, ignore if nothing
python manage.py syncdb

如果没有,请重新迁移DB。

代码语言:javascript
复制
python manage.py migrate --fake sliders zero
python manage.py migrate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67244152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档