django迁移问题

rootid rootid     2023-02-27     739

关键词:

面试题1:migrate怎么判断哪些迁移脚本需要执行:
他会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本。

面试题2:migrate做了什么事情:
将相关的迁移脚本翻译成SQL语句,在数据库中执行这个SQL语句。
如果这个SQL语句执行没有问题,那么就会将这个迁移脚本的名字记录到django_migrations中。
面试题3:执行migrate命令的时候报错的解决办法:
原因:
执行migrate命令会报错的原因是。数据库的django_migrations表中的迁移版本记录和代码中的迁移脚本不一致导致的。

解决办法:
使用–fake参数:
首先对比数据库中的迁移脚本和代码中的迁移脚本。然后找到哪个不同,之后再使用--fake,将代码中的迁移脚本添加到django_migrations中,但是并不会执行sql语句。这样就可以避免每次执行migrate的时候,都执行一些重复的迁移脚本。

终极解决方案:
如果代码中的迁移脚本和数据库中的迁移脚本实在太多,就是搞不清了。那么这时候就可以使用以下终极解决方案:
1. 终极解决方案原理:就是将之前的那些迁移脚本都不用了。重新来过。要将出问题的app下的所有模型和数据库中表保持一致,重新映射。
2. 将出问题的app下的所有模型,都和数据库中的表保持一致。
3. 将出问题的app下的所有迁移脚本文件都删掉。再在django_migrations表中将出问题的app相关的迁移记录都删掉。
4. 使用makemigrations,重新将模型生成一个迁移脚本。
5. 使用migrate --fake-initial参数,将刚刚生成的迁移脚本,标记为已经完成(因为这些模型相对应的表,其实都已经在数据库中存在了,不需要重复执行了。)
6. 可以做其他的映射了。
---------------------
作者:南窗客斯黄
来源:CSDN
原文:https://blog.csdn.net/nunchakushuang/article/details/80024753
版权声明:本文为博主原创文章,转载请附上博文链接!





















Django 1.7 内置迁移与南迁移?

】Django1.7内置迁移与南迁移?【英文标题】:Django1.7builtinmigrationsvsSouthmigrations?【发布时间】:2014-12-2116:38:45【问题描述】:我已经在问题中检查了这个问题,但找不到任何关于Django构建迁移的简单解释,或者-它们足够可靠吗?... 查看详情

我的旧项目出现 Django 1.7 迁移问题

】我的旧项目出现Django1.7迁移问题【英文标题】:Django1.7Migrationsissuewithmyoldproject【发布时间】:2015-01-0212:54:56【问题描述】:我有一个django1.5应用程序,现在我将它迁移到django1.7并且应用程序在旧数据库上运行良好。但现在我... 查看详情

南迁移和 django 迁移有啥区别?

】南迁移和django迁移有啥区别?【英文标题】:Whatisthedifferencebetweensouthmigrationsanddjangomigrations?南迁移和django迁移有什么区别?【发布时间】:2019-02-1422:54:24【问题描述】:谁能解释一下南迁移和django迁移之间的区别?一个人比... 查看详情

Django 从 2.0 迁移到 2.2(查看权限问题)

】Django从2.0迁移到2.2(查看权限问题)【英文标题】:DjangoMigrationfrom2.0to2.2(ViewPermissionsIssue)【发布时间】:2019-10-1601:04:18【问题描述】:在迁移Django时面临与迁移相关的问题:pythonmanage.pymigratedemo--databasedemo获取与以下相关的错... 查看详情

重新运行 Django 数据迁移

】重新运行Django数据迁移【英文标题】:RerunaDjangodatamigration【发布时间】:2015-11-0409:01:42【问题描述】:如何在Django1.8+上重新运行数据迁移?如果相关,我的迁移编号为0011_my_data_migration.py,是最新的迁移。【问题讨论】:请注... 查看详情

django迁移问题

...迁移脚本需要执行:他会将代码中的迁移脚本和数据库中django_migrations中的迁移脚本进行对比,如果发现数据库中,没有这个迁移脚本,那么就会执行这个迁移脚本。面试题2:migrate做了什么事情:将相关的迁移脚本翻译成SQL语... 查看详情

Django:安全删除旧迁移?

】Django:安全删除旧迁移?【英文标题】:Django:SafelyRemoveOldMigrations?【发布时间】:2020-01-1921:04:36【问题描述】:我有一个Django应用程序,其中包含许多过时的迁移。我想删除旧的迁移并重新开始。该应用有14个不同的“迁移”... 查看详情

Django 重建所有迁移

】Django重建所有迁移【英文标题】:DjangoRebuildallmigrations【发布时间】:2017-04-1001:27:00【问题描述】:我正在Django中构建一个应用程序,它使用实时/使用中的数据库。基本上,由于SQL数据库的应用程序开发经历了一些结构变化,... 查看详情

迁移期间的 Django 问题 - 懒惰的参考

】迁移期间的Django问题-懒惰的参考【英文标题】:Djangoissueduringmigrations-lazyreference【发布时间】:2017-07-2411:29:16【问题描述】:我目前将此模型添加到我的应用中frommainApp.modelsimportmodelPatientclassmodelBodyParts(models.Model):part_name=models.... 查看详情

陷入 django 南迁移 - TransactionManagement 错误

】陷入django南迁移-TransactionManagement错误【英文标题】:Stuckinadjangosouthmigration-TransactionManagementerror【发布时间】:2013-08-2819:41:39【问题描述】:我在应用django南迁移时遇到问题:和往常一样,我在模式迁移成功后执行了migrate命令... 查看详情

Django - 迁移后未创建表

】Django-迁移后未创建表【英文标题】:Django-Tableisnotcreatingaftermigration【发布时间】:2021-01-2101:00:24【问题描述】:我想在DigitalOcean服务器上使用Postgres数据库为我的Django项目添加新功能。问题是,在本地服务器上一切正常,但在... 查看详情

进行迁移时Django中的TransactionManagementError

】进行迁移时Django中的TransactionManagementError【英文标题】:TransactionManagementErrorinDjangowhenmakemigrate【发布时间】:2022-01-0912:14:51【问题描述】:我是编程新手,在Django3.2.9中进行迁移时遇到问题。这是我的代码,models.pyfromdjango.dbimp... 查看详情

Django迁移错误地应用

】Django迁移错误地应用【英文标题】:Djangomigrationswronglyapplying【发布时间】:2021-02-0623:31:45【问题描述】:基本问题我正在开发一个django项目,我在其中使用多个数据库和一个自定义路由器。因此,django应该知道哪个数据库用... 查看详情

Django 的核心迁移工具与 Django 数据迁移的 South

】Django的核心迁移工具与Django数据迁移的South【英文标题】:Django\'sCoreMigrateToolvsSouthforDjangoDataMigrations【发布时间】:2014-01-1203:27:11【问题描述】:我目前没有在我的Django项目中使用迁移,但我打算很快使用。我知道South是事实... 查看详情

如何通过 Django 迁移执行 git 命令?

】如何通过Django迁移执行git命令?【英文标题】:HowtoexecutegitcommandthroughDjangomigration?【发布时间】:2018-05-0518:21:30【问题描述】:我需要在Django迁移中执行git命令。我需要通过Django迁移清除目录的内容,因为我们无法直接访问生... 查看详情

django 如何知道已经运行了哪些迁移?

】django如何知道已经运行了哪些迁移?【英文标题】:Howdoesdjangoknowwhichmigrationshavebeenrun?【发布时间】:2015-02-1009:35:17【问题描述】:django如何知道是否已经应用了迁移?它通常可以解决问题,但如果不正确,我不知道从哪里开... 查看详情

将迁移添加到源代码管理并合并 Django 中的冲突迁移

】将迁移添加到源代码管理并合并Django中的冲突迁移【英文标题】:AddingMigrationstoSourceControlandMergingConflictingMigrationsinDjango【发布时间】:2021-02-2017:13:53【问题描述】:我接手了一个Django项目,发现Git没有跟踪各种应用程序的迁... 查看详情

Django 从 MySQL 迁移到 Postgres

】Django从MySQL迁移到Postgres【英文标题】:DjangomigratefromMySQLtoPostgres【发布时间】:2016-03-3006:09:34【问题描述】:我最近决定从MySQL切换到Postgres,因为我遇到了一些在Postgres上绝不应该成为问题的问题。但是我似乎找不到一个很好... 查看详情