为现有的 django 模式重新创建数据库
Posted
技术标签:
【中文标题】为现有的 django 模式重新创建数据库【英文标题】:Recreating a database for an existing django schema 【发布时间】:2016-08-17 22:06:06 【问题描述】:我不小心删除了我的 Postgres 数据库。然后按照this solution我删除了迁移文件,但现在无法执行第三步的命令“python manage.py migrate --fake”。
RuntimeError: Error creating new content types.
Please make sure contenttypes is migrated before trying to migrate apps individually.
psycopg2.ProgrammingError: relation "django_content_type" does not exist
LINE 1: ..."."app_label", "django_content_type"."model" FROM "django_co...
^
我尝试运行“python manage.py migrate contenttypes”和“python manage.py makemigrations contenttypes --empty”,但都不起作用。
使用 django 1.9.5
【问题讨论】:
你必须先运行syncdb! @rakwouen:不是在 Django 1.9.5 上,他们没有。syncdb
在 1.9 中消失了,它的 manage.py migrate
取代了它。见"Unknown command syncdb" running "python manage.py syncdb"
【参考方案1】:
首先同步您的项目: 像这样:
python manage.py syncdb
完成后你可以运行:python manage.py makemigrations
和最后一个python manage.py migrate
【讨论】:
python manage.py syncdb
返回“未知命令:'syncdb'”。我尝试做python manage.py migrate --run-syncdb
,但返回的结果与“迁移”完全相同
你有哪些 django 版本?
我使用的是 Django 1.9.5
如果你有 django 1.9 使用 makemigrations 像这样: python manage.py makemigrations;在 1.9 中删除了 syncdb,您必须使用 makemigrations 和 migrate (python manage.py migrate)。不要忘记在 makemigrations 命令中添加 s。
是的,我已经完成了标准的 makemigrations,然后进行了迁移。在 makemigrations 之后,我得到“没有检测到任何更改”,并且在迁移之后,我得到了 contenttypes 错误,就像我原来的帖子中一样以上是关于为现有的 django 模式重新创建数据库的主要内容,如果未能解决你的问题,请参考以下文章
为现有的 rails 应用程序创建 iphone 和 android 应用程序