django在APP中新增表

141 阅读1分钟

django 数据迁移原理

python manage.py makemigrations # 生成迁移文件.py
python manage.py migrate # 执行迁移文件、新增表或修改表内容

常规迁移命令

当python开发的项目,新建一张数据表,正常django数据迁移仅需要执行如下命令

python manage.py makemigrations
python manage.py migrate

特殊迁移状况

但是当你的app中已经有其他表存在了,应该如何操作

  1. 第一步:

删除django_migrations 表中关于此app的条目

select * from django_migrations where app='APP_NAME';
delete from django_migrations where app='appname';

  1. 第二步

删除app下的migrations中的迁移文件,重新执行数据迁移并指定当前app

python manage.py makemigrations app_name

此时会生成新的迁移文件0001_initial.py

  1. 第三步

比对迁移文件差异,注释原来有的内容,仅保留当前新建表的语句段

  1. 第四步

执行迁移文件

python manage.py migrate app_name

至此:在已经存在表的APP中新增一张表