2015-12-18 1 views
9

Я разрабатываю интерфейс backend для Django (1.9) и интерфейс AngularJS с перекрестной ссылкой. При попытке выполнить команду ./manage.py dumpdata, он выдает следующее исключение:Django 1.9 с данными CORS демпинга: «corsheaders_corsmodel» не существует

$ python manage.py dumpdata -o dev/dumpdata.json 
CommandError: Unable to serialize database: relation 
"corsheaders_corsmodel" does not exist 
LINE 1: SELECT COUNT(*) AS "__count" FROM "corsheaders_corsmodel" 

Любая идея, как справиться?

+0

У вас установлена ​​текущая версия corsheaders? –

+0

django-cors-headers == 1.1.0 – user3897818

+0

Не могли бы вы выбрать правильный ответ на этот вопрос? Кажется, @ myk-willis имеет правильное решение. – daveslab

ответ

21

У меня была такая же проблема, и решить ее путем вызова python manage.py makemigrations специально для corsheaders приложения:

$ python manage.py makemigrations corsheaders 
$ python manage.py migrate 

Я думаю, что произошло в моем случае было то, что после обновления Django 1.8 до 1.9, начальная миграция никогда не применялась, когда я обновлял свою БД.

я отслеживал его вниз, заметив что corsheaders приложения не было включено в Apply all migrations выходе python manage.py migrate:

$ python manage.py migrate 
Operations to perform: 
    Apply all migrations: sessions, admin, xyz, auth, contenttypes 
Running migrations: 
    No migrations to apply. 

же работает ручную миграцию для corsheaders фактически создает начальную миграцию:

$ python manage.py makemigrations corsheaders 
Migrations for 'corsheaders': 
    0001_initial.py: 
    - Create model CorsModel 

После этого migrate отображает corsheaders на выходе и успешно применяет миграцию, как ожидалось:

$ python manage.py migrate 
Operations to perform: 
    Apply all migrations: corsheaders, sessions, admin, xyz, auth, contenttypes 
Running migrations: 
    Rendering model states... DONE 
    Applying corsheaders.0001_initial... OK 
1

Если таблица corsheaders_corsmodel не существует, то данных для сброса нет. Таким образом, вы можете просто запустить:

$python manage.py dumpdata --exclude=corsheaders 

У меня была такая же проблема, и я решаю это таким образом.