django笔记_migrate异常处理

django笔记_migrate异常处理
Page content

migrate即数据迁移,是Django将你对模型所做的更改(添加字段,删除模型等)同步到数据库的一种方式。它们的设计基本上是自动的,但是你需要知道何时进行迁移,何时运行它们以及可能遇到的常见问题。

这段代码适用于python3环境。

以下为迁移过程中的常用语句

  • migrate 负责完成迁移过程
  • makemigrations 检测模型是否改动并创建新的迁移
  • sqlmigrate 显示用于迁移的SQL语句
  • showmigrations 列出项目的迁移及状态

实例

在某次执行迁移过程中,一不小心按下了ctrl+c 导致迁移过程只执行了部分,没能全部完成。

而在这样的情况下再次执行 python3 manager.py migrate 出现了 xxx is already exists 这样是因为迁移过程只执行了一半

首先我们通过如下已经查询当前所有迁移的状态

python3 manager.py showmigrations

showmigrations

或在尾部加上指定app的名称来查看

python3 manager.py showmigrations work

only_one_app

而这个时候我们发现work的部分migrations并没有被提交。并且尝试migrate显示失败

所以我们通过如下命令跳过下一个migration并继续执行migrate

python3 manager.py migrate work 0001 --fake