解决报错:Django框架数据库迁移出现报错:django.db.migrations.exceptions.InconsistentMigrationHistory(图文并茂)
2021/11/6 19:14:26
本文主要是介绍解决报错:Django框架数据库迁移出现报错:django.db.migrations.exceptions.InconsistentMigrationHistory(图文并茂),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
解决Django框架在数据库迁移时出现报错
- 报错信息
- 问题分析
- 解决报错
报错信息
- 我们有时在django框架中进行数据库迁移,会出现下述报错,导致数据库迁移失败:
Traceback (most recent call last): File "manage.py", line 21, in <module> main() File "manage.py", line 17, in main execute_from_command_line(sys.argv) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line utility.execute() File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\__init__.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv self.execute(*args, **cmd_options) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\base.py", line 364, in execute output = self.handle(*args, **options) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(*args, **kwargs) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle loader.check_consistent_history(connection) File "E:\virtualenv\djangoFrame-V3Y6g1nz\lib\site-packages\django\db\migrations\loader.py", line 299, in check_consistent_history connection.alias, django.db.migrations.exceptions.InconsistentMigrationHistory: Migration user.0002_user_create_time is applied before its dependency user.0001_initial on database 'default'.
问题分析
- 首先我们需要了解django数据库迁移时,发生的操作:
- ①
python manage.py makemigrations
:根据我们自定义的模型生成对应的迁移脚本 - ②
python manage.py migrate
:发生了两步操作:一:将迁移脚本转换成sql语句,然后再去数据库中执行转换后的sql语句。二:如果转换后的sql语句没有错误,则会此条迁移记录保存到数据库中的django_migrations表中
- 出现上述错误的原因就是:
数据库django_migrations表中保存的迁移版本与django项目目录下的迁移版本不一致
解决报错
-
首先找到数据库表中的版本与项目目录下的哪个版本不一致,确定版本不一致的app,解决问题的第一步就完成了
-
详细的解决报错的步骤:
-
①:
将数据django_migrations表下的有关找到的不一致的app的迁移记录全部删除
-
②:
删除django项目目录下user app的migrations目录的全部迁移脚本
-
③:
将django项目的user app的模型修改的与数据库表中保存的字段属性相同!!!
-
④:
使用迁移命令生成对应app的迁移脚本:python manage.py makemigrations user
-
出现上述情况即为生成对应的迁移脚本成功!!
-
⑤:
使用命令将初始化的脚本标记为已经映射,然后再次修改django项目下的app模型文件就不会发生报错!!!
-
出现上述信息即为完美解决此报错!!!然后你就可以修改django项目下的模型,再次生成迁移脚本,执行迁移命令时就不会出现上述的报错了!!
这篇关于解决报错:Django框架数据库迁移出现报错:django.db.migrations.exceptions.InconsistentMigrationHistory(图文并茂)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20MongoDB教程:从入门到实践详解
- 2024-11-17执行 Google Ads API 查询后返回的是空数组什么原因?-icode9专业技术文章分享
- 2024-11-17google广告数据不同经理账户下的凭证可以获取对方的api数据吗?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么实现同时向多个邮箱发送邮件?-icode9专业技术文章分享
- 2024-11-15SendGrid 的 Go 客户端库怎么设置header 和 标签tag 呢?-icode9专业技术文章分享
- 2024-11-12Cargo deny安装指路
- 2024-11-02MongoDB项目实战:从入门到初级应用
- 2024-11-01随时随地一键转录,Google Cloud 新模型 Chirp 2 让语音识别更上一层楼
- 2024-10-25Google Cloud动手实验详解:如何在Cloud Run上开发无服务器应用
- 2024-10-24AI ?先驱齐聚 BAAI 2024,发布大规模语言、多模态、具身、生物计算以及 FlagOpen 2.0 等 AI 模型创新成果。