一、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参数: