django 做 migrate 时 表已存在的处理方法

在岁月中跋涉,每个人都有自己的故事,看淡心境才会秀丽,看开心情才会明媚。累时歇一歇,随清风漫舞,烦时静一静,与花草凝眸,急时缓一缓,和自己微笑。

在开发web的时候,如果是以前已存在的项目,项目下载下来后,为了使用测试库的数据,会直接将整个测试库(如sqlite3)拿到本机来。这种情况下,如果执行的顺序不对,很容易在执行migrate的时候出现数据库已存在的错误:

django.db.utils.OperationalError: (1050, "Table 'xxx' already exists")

要处理这种情况,如果是数据表都已经存在了,在migrate时直接使用 --fake-initial 来处理

python manage.py migrate --fake-initial

如果是因有外键存在,需要初始化多个表,且有部分数据表已创建,又有部分未创建,可以使用 --fake <appname>来处理

python manage.py migrate --fake <appname>

参考https://stackoverflow.com/questions/25924858/django-1-7-migrate-gets-error-table-already-exists

以上这篇django 做 migrate 时 表已存在的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

您可能有感兴趣的文章
django连接数据库获取数据的简单步骤记录

Django实现翻页的示例代码

正确的理解和使用Django信号(Signals)

django使用多个数据库的方法实例

Django中如何用xlwt生成表格的方法步骤