django 数据迁移原理
python manage.py makemigrations # 生成迁移文件.py
python manage.py migrate # 执行迁移文件、新增表或修改表内容
常规迁移命令
当python开发的项目,新建一张数据表,正常django数据迁移仅需要执行如下命令
python manage.py makemigrations
python manage.py migrate
特殊迁移状况
但是当你的app中已经有其他表存在了,应该如何操作
- 第一步:
删除django_migrations 表中关于此app的条目
select * from django_migrations where app='APP_NAME';
delete from django_migrations where app='appname';
- 第二步
删除app下的migrations中的迁移文件,重新执行数据迁移并指定当前app
python manage.py makemigrations app_name
此时会生成新的迁移文件0001_initial.py
- 第三步
比对迁移文件差异,注释原来有的内容,仅保留当前新建表的语句段
- 第四步
执行迁移文件
python manage.py migrate app_name
至此:在已经存在表的APP中新增一张表