django app中的models迁移问题根治方法

今天想给某个app里添加一张表,但是忽略了主键冲突问题,再想改的时候就一直提示

You are trying to add a non-nullable field 'id' to sensorconfigalllog without a default; we can't do that (the database needs something to populate existing rows).

Please select a fix:

  1. Provide a one-off default now (will be set on all existing rows with a null value for this column)
  2. Quit, and let me add a default in models.py

尝试了几种方式都没成功,只能移除迁移记录,重新建表。(这里需要说明的是如果删除记录后,app中其他的表没删,系统会默认所有表都创建了,所以就不会重新建表了。没办法,只能备份好数据,删除所有的表)

具体流程如下:

1.保留data/migrations/init.py,删除其他所有迁移文件;

data为app名称,其他迁移文件建议先备份至别处。

2.清理数据库迁移记录;
MySQl 复制代码
DELETE FROM django_migrations WHERE app = 'data';
3.手动删除该应用对应的所有数据库表
MySQl 复制代码
DROP TABLE data_sensorconfigalllog;  -- 示例表名,根据实际表名逐一删除
4.重新迁移文件和应用即可
python 复制代码
python manage.py makemigrations
python manage.py migrate
5.重新导入备份数据测试

完成!

相关推荐
逐米时代19 小时前
智能招聘与人岗匹配:可解释匹配让录用依据有迹可循
大数据·数据库·人工智能
承渊政道19 小时前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
IvorySQL20 小时前
PostgreSQL 日报| RI 快速路径并发读取缺陷(8 月 13 日)
数据库·postgresql
highreport20 小时前
HighReport报表工具定时调度和邮件定时发送
运维·服务器·数据库
01_ice20 小时前
数据库基础
数据库
deepdata_cn20 小时前
向量数据库是非结构化数据的AI检索底座
数据库·人工智能
梁辰兴21 小时前
软件工程:数据库设计
数据库·软件工程·数据库设计·逻辑设计·概念设计·梁辰兴·物理设计
10mAh21 小时前
【Git】误删分支、reset --hard 后提交丢了怎么办?——reflog、fsck 与安全恢复实战
数据库·git·安全·回归
J_bean21 小时前
剖析 MySQL InnoDB 共享行锁 (S) & 排他行锁 (X)
数据库·mysql·共享行锁·s lock·排他行锁·x lock
霸道流氓气质21 小时前
RedLock:Redis 分布式锁的高可用方案
数据库·redis·分布式