Django项目中执行migrate迁移脚本时报错及解决方法

本文介绍了在Django项目中遇到迁移脚本执行错误的常见情况,包括`make migration`和`migrate`的使用技巧。当数据库迁移版本与Django迁移脚本不一致时,提供了两种解决方案:一是使用`--fake`参数完成同步,二是通过`--fake-initial`参数重新初始化迁移。这两个方法可帮助开发者避免不必要的SQL执行和修复迁移问题。
摘要由CSDN通过智能技术生成

一、python manage.py startapp  appname  创建一个app

二、python manage.py make migration  将模型生成迁移脚本

    1.模型所在的app,必须在settings的INSTALLED_APPS下,否则报错。

    2.python manage.py make migration appname   只将某个app模型生成迁移脚本

    3.python manage.py make migration appname  --name "add_order_price"   只将某个app模型生成迁移脚本时指定名字,比如''在         订单中增加价格''字段。

三、python manage.py migrate 将新生成的迁移脚本映射到数据(django_migration),创建新的表或者修改表的结构。

    1.python manage.py migrate appname 指定只映射某个app

    2.python manage.py migrate appname  迁移版本    指定只映射某个app下某个迁移版本

报错原因:数据库中django_migration中记录的迁移版本记录与Django项目中app下执行 makemigrations命令时生成的迁移脚本版本不一致造成的。

解决办法:

方法一、使用--fake参数:对比数据库和项目中迁移脚本,找到二者不同的脚本,然后执行 python manage.py migrate appname --fake将代码中的迁移脚本映射到django_migration中,但并不会执行SQL语句。这样就可以避免每次执行migrate时,都执行一些重复脚本。

方法二、--fake-inital参数:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值