如何将现有的Django项目迁移到新的空数据库(或模式)?

时间:2015-08-06 09:00:50

标签: django django-migrations

我已经开展了不同月份的Django(版本1.7.6)项目。在这段时间里,每个应用程序都发展得很好,现在有很多次迁移。

我想将此项目部署到新的开发环境中。我设置了一个空模式的数据库,并相应地更新了settings.py。现在我想从迁移中重新创建数据库结构,但是当我运行python manage.py migrate时出现以下异常:

  

文件“/usr/lib/python2.7/dist-packages/django/db/backends/utils.py”,   第65行,执行中       return self.cursor.execute(sql,params)django.db.utils.ProgrammingError:table   “modules_server_proj_locations”不存在

modules_server_proj_locations指的是不再存在的多对多关系,但出于某种原因,迁移仍在尝试使用它。

然后我尝试使用--fake选项进行迁移,但这只会导致不同的异常:

  

文件   “/usr/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py”   第58行,在get_for_model中       “在尝试单独迁移应用程序之前会迁移”。 RuntimeError:创建新内容类型时出错。请确认   在尝试单独迁移应用程序之前,会迁移contenttypes。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果这是您的第一个版本,那么您可以删除整个数据库,删除所有迁移文件,然后运行python manage.py makemigrations以获得干净的数据库和迁移主题。否则,您可能需要编辑迁移文件并从中删除表跟踪。