带有CORS转储数据的Django 1.9:"corsheaders_corsmodel"不存在

use*_*818 10 django postgresql django-migrations django-1.9

我正在使用跨站点引用开发Django(1.9)Rest后端和AngularJS前端.尝试执行./manage.py dumpdata命令时,会抛出以下异常:

$ 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"
Run Code Online (Sandbox Code Playgroud)

知道如何处理?

Myk*_*lis 24

我有同样的问题,并通过python manage.py makemigrations专门为corsheaders应用程序调用解决它:

$ python manage.py makemigrations corsheaders
$ python manage.py migrate
Run Code Online (Sandbox Code Playgroud)

我认为在我的情况下发生的事情是,在从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.
Run Code Online (Sandbox Code Playgroud)

然而,运行手动迁移corsheaders实际上会创建初始迁移:

$ python manage.py makemigrations corsheaders
Migrations for 'corsheaders':
  0001_initial.py:
    - Create model CorsModel
Run Code Online (Sandbox Code Playgroud)

完成后,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
Run Code Online (Sandbox Code Playgroud)