Django开发----关于数据添加前忘记migration
前因:
数据库中有一张空表,需要先在模型类中添加字段,进行数据迁移后,再导入数据.
而我脑壳宕机,直接进行了数据导入
后果:
导入的数据文件将数据库中的空表覆盖,直接导致数据表中多出没有进行migration而产生的字段
因为没有进行数据迁移,所以没有生成迁移文件.相应的,数据库迁移表中没有此次迁移记录
解决:
Plan A:删库
1.前提你手中有原来的数据库文件,可以在之后重新进行数据导入
2.执行删库命令(想想还有点小激动呢~)
drop database 数据库名;
3.删除项目的migration模块中的除了__init__.py文件外的所有文件
4.创建新数据库,进行数据迁移
python manage.py makemigrations
python manage.py migrate
5.数据导入,一切OK
Plan B:不删库,不跑路
首先抓住我们的主要矛盾,没有迁移记录.那么在不删库的情况下能把我们的迁移记录存储在迁移表中,岂不完美
1.删除数据表中因先进行数据导入而出现的字段
alter table 表名 drop column 属性名; //删除字段
2.进行数据迁移,建议对特定app进行迁移.
注 : 迁移命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作。如果想对部分app进行操作,就要在其后追加app name(你的应用名)
python manage.py makemigrations appname
python manage.py migrate appname
3.数据导入
这样完美解决了在不删库的前提下,怎样生成迁记录的问题
ps : 以上只是我的一些浅薄了解,完全是为了解决眼前的bug,目前项目还没出现因为这项操作引发的其他问题.
如有错误,还望指正.
如有帮助,不胜荣幸
本文详细解析了在Django开发中遇到的常见问题——数据添加前未进行迁移的解决方案。提供删库重建与保留数据库两种策略,指导如何处理错误导入数据造成的字段冲突,通过具体步骤演示如何恢复数据库结构并正确生成迁移记录。
630

被折叠的 条评论
为什么被折叠?



