现象:导入的数据及结构在升级版本时,结构发生变更,不识别django_migrations表数据(内容不匹配),从而导致部署时,migrate失败报错,部署失败。
前提:数据结构变动不大,新版本的表字段只能多,不能少,字段类型能够适应老版本的数据。
目标:数据要保留,数据不能发生变更,但是数据结构要用最新的数据结构。
举个例子:
项目内有个home_application内migrations目录下有多少个迁移文件,数据库的django_migrations表就会生成对应条数的数据。
将django_migrations表的数据替换成最新的django_migrations表的内容,和上一个版本相比,本版本增加的迁移文件对应的迁移数据记录不入库。
项目案例:
最新版本的django_migrations插入sql语句:
INSERT INTO `django_migrations` VALUES (1, 'contenttypes', '0001_initial', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (2, 'contenttypes', '0002_remove_content_type_name', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (3, 'auth', '0001_initial', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (4, 'auth', '0002_alter_permission_name_max_length', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (5, 'auth', '0003_alter_user_email_max_length', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (6, 'auth', '0004_alter_user_username_opts', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (7, 'auth', '0005_alter_user_last_login_null', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (8, 'auth', '0006_require_contenttypes_0002', '2020-03-04 19:12:48');
INSERT INTO `django_migrations` VALUES (9, 'account', '0001_initial', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (10, 'account', '0002_initial_user_data', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (11, 'account', '0003_auto_20180911_0959', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (12, 'admin', '0001_initial', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (13, 'app_control', '0001_initial', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (14, 'app_control', '0002_initial_app_control', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (15, 'djcelery', '0001_initial', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (16, 'home_application', '0001_initial', '2020-03-04 19:12:49');
INSERT INTO `django_migrations` VALUES (17, 'home_application', '0002_auto_20181024_0920', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (18, 'home_application', '0003_auto_20181025_1117', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (19, 'home_application', '0004_auto_20181025_1202', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (20, 'home_application', '0005_runprocess_record_time', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (21, 'home_application', '0006_auto_20181031_1416', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (22, 'home_application', '0007_auto_20181119_0950', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (23, 'home_application', '0008_auto_20181119_0952', '2020-03-04 19:12:50');
INSERT INTO `django_migrations` VALUES (24,