所以...这是我遇到的问题:
我的Django项目被破坏了:我登陆默认主页说start project
和manage.py runserver [::]:8000
说run migrate
。
全部我的迁移已应用(数据库处于正确的状态),所以我不明白发生了什么。 (所以如果有人对此重置有任何线索,我会很高兴看到他/她的回答)
无论如何,我运行了manage.py reset_db
和manage.py syncdb
,这里出现了真正的问题:
初始迁移成功没有任何问题但是,我有一些通过数据迁移加载的灯具,此加载失败,
django.db.utils.OperationalError: Problem installing fixture 'scopes_fixtures.json': Could not load utils.MPTTScope(pk=0118cd35-e6dd-4a38-8cc8-f9cf07cfdd05): (1054, "Unknown column 'enabled' in 'field list'")
我了解loaddata
命令使用最新应用模型定义对灯具进行反序列化,但这有点烦人,因为enabled
字段仅在以后的迁移中添加
是否有任何选项会强制loaddata
使用之前迁移建立的应用模型定义反序列化灯具?
答案 0 :(得分:1)
这不是您正在寻找的答案,但让我给您一个可能有助于解决此问题的视角。使用数据迁移,以便在导入此数据时应用程序的状态始终相同。
https://docs.djangoproject.com/en/1.9/topics/migrations/#data-migrations
$ ./manage.py makemigrations [appname] --empty
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
def import_data(apps, schema_editor):
ModelName = apps.get_model("yourappname", "ModelName")
ModelName.objects.bulk_create([...])
class Migration(migrations.Migration):
dependencies = [
('yourappname', '0001_initial'),
]
operations = [
migrations.RunPython(import_data),
]