Django - 迁移命令说该表在执行第二次 makemigrations 后存在

     2023-02-24     84

关键词:

【中文标题】Django - 迁移命令说该表在执行第二次 makemigrations 后存在【英文标题】:Django - Migrate command says that table exists after second makemigrations was executed 【发布时间】:2015-12-08 16:37:28 【问题描述】:

我有一个带有相关字段设置的模型。我运行manage.py migrate 然后它在我的数据库中创建了一个表。然后我运行manage.py makemigrations,以便它可以创建一个带有前缀“0001”的初始迁移文件。我在模型中添加了另一个字段,然后再次运行manage.py makemigrations,这创建了另一个带有前缀“0002”的迁移文件。当我现在运行manage.py migrate 时,它仍然会查看第一个迁移文件,因此会抛出“表已存在”的错误。如何让它只查看最新的迁移文件,以便将新列添加到表中?我正在使用 MySQL。

【问题讨论】:

【参考方案1】:

这永远不会发生,除非 django 检测到(认为)数据库尚未设置,并尝试使用模式初始化表。

看起来你的表已经设置好了,但是 django 不知道。这就是它尝试开始应用第一次迁移的原因 - 表创建和架构包含在其中。

您可以根据您的具体问题使用--fake--fake-initial 选项,它们告诉django 表已经设置好并准备就绪,并伪造迁移。

更多信息的有用链接:

django migrations - django documentation

django migrations, a primer - realpython

how to redo a migration after fake - ***

【讨论】:

嗨 kicker86。我决定从头开始,只是为了确认我所经历的。我删除了数据库并创建了一个新数据库;然后我删除了我的应用程序文件夹中迁移文件夹中的所有文件。然后我运行manage.py migrate,它按预期工作,然后我运行manage.py makemigrations。现在它告诉我:No changes detected。我以前遇到过这个问题,所以我通常做的是manage.py makemigrations <app_name>。只在我指定 app_name 时才有效,这不是很奇怪吗? makemigrations 创建迁移,migrate 应用这些迁移。所以当你创建一个空数据库,并删除所有迁移文件时,你应该先运行makemigrations创建迁移文件,然后应用migrate。在没有任何迁移文件的空数据库上运行 migrate 除了设置 django(和其他应用程序,如果使用)基表之外,什么也做不了。如果没有迁移文件,您的模型将不会被转换为表。 查看他的回答,了解为什么需要使用应用名称而不是通用的 make migrations 语句创建迁移:***.com/questions/24912173/…

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

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

django系列教程15:数据库迁移(代码片段)

目录1.迁移1.生成迁移文件2.执行迁移命令添加测试数据1.迁移创建完模型类后,并没有真正的在数据库中创建了数据表,需要执行迁移命令,在数据表中创建数据表。1.生成迁移文件manage.py文件所在目录执行命令pythonmanage.pymakemigr... 查看详情

无法第二次执行 Celery beat

...使用Celerybeat每10秒获取一次站点数据。因此我更新了我的Django项目中的设置。我正在使用rabbitmq和celery。settings.py#Thisisthesettingsfile#RabbitmqconfigurationBR 查看详情

信息安全第二次培训—命令执行补档(代码片段)

信息安全第二次培训—命令执行补档前言正文基础函数及系统命令命令执行漏洞前言这次的培训因为种种原因,效果不太好,录屏也没有录上。我本来是想着抽时间重新录一次课,但周内没啥空余时间,因此我就... 查看详情

django迁移问题

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

第二次汇编实验

...执行,根据指令执行后的实际运行情况填空(1)在使用A命令输入指令调试前,使用E命令将0021:0~0021:7连续8个字节修改为30H,31H,32H,33H,34H,35H,36H,37H,再用D命令查看 (2)将书上的程序段输入可得  (3)使用R命... 查看详情

第二次笔记

第二次笔记整理----man---命令解释:帮助指令,通过man可以查看linux中指令帮助,配置文件帮助和编程帮助等信息man+命令man的手册页一共有九部分1 系统命令(echomkdir)用户命令的使用方法。可以使用的参数等2 系统接口&nb... 查看详情

第二个模型的 Django 迁移

】第二个模型的Django迁移【英文标题】:Djangomigrationsforsecondmodel【发布时间】:2019-11-2908:01:35【问题描述】:Django不响应迁移到新应用中的模型。我删除了应用程序,然后创建了一个新应用程序,但仍然没有响应。我删除了旧的... 查看详情

如何解决 Heroku 上托管的 django 项目中的迁移问题?

】如何解决Heroku上托管的django项目中的迁移问题?【英文标题】:Howcanisolveamigrationissueindjangoprojecthostedonheroku?【发布时间】:2016-10-0820:46:32【问题描述】:我的项目托管在heroku上,最近我想更改一列的大小在数据库中但是在运行... 查看详情

第二次 Django 注销不起作用

】第二次Django注销不起作用【英文标题】:SecondDjangoLogoutDoesNotWork【发布时间】:2017-07-3110:09:16【问题描述】:我目前正在尝试让我的Django登录/注销正常工作,但是在我登录并注销一次后遇到了问题。如果我以相同用户或不同用... 查看详情

django系列12:django模型关系

迁移分两步实现生成迁移文件执行迁移文件迁移文件的生成根据models文件生成对应的迁移文件根据models和已有迁移文件差别生成新的迁移文件执行迁移文件先去迁移记录查找,哪些文件未迁移过app_label+迁移文件名字执行未迁移... 查看详情

第二次运行迁移时出错。看来需要处理通用回购,我不知道如何

】第二次运行迁移时出错。看来需要处理通用回购,我不知道如何【英文标题】:ErrorsecondtimeIrunamigration.ItappearstheGenericReponeedstobedisposed,Ihavenoideahow【发布时间】:2020-08-1812:44:07【问题描述】:请多多包涵,我在这里真的很挣扎... 查看详情

陷入 django 南迁移 - TransactionManagement 错误

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

Django:第二次 Selenium 测试因 500 服务器错误而失败

】Django:第二次Selenium测试因500服务器错误而失败【英文标题】:Django:SecondSeleniumTestFailingwith500ServerError【发布时间】:2015-09-0919:01:06【问题描述】:我正在尝试向我的Django项目中添加一些selenium测试,但第二个测试总是以ServerErr... 查看详情

汇编第二次实验

任务一:(1)使用e命令修改0021:0~0021:f数据 (2)使用 a 命令输入指令 (3)用t指令每一项进行单步调试(4)书上指令执行后的结果  任务二:(1)使用a命令输入的指令,用e命令修改2000:0~2000:f的值 (2)... 查看详情

Rails DB 迁移 - 如何删除表?

】RailsDB迁移-如何删除表?【英文标题】:RailsDBMigration-HowToDropaTable?【发布时间】:2011-04-3012:37:56【问题描述】:我添加了一个我认为我会需要的表格,但现在不再打算使用它。我应该如何删除该表?我已经运行了迁移,所以该... 查看详情

Discord Bot 在第二次执行时需要很长时间

...人。我做了一个只能在成员位于discord.VoiceChannel时执行的命令。它向频道发送消息并编辑语音频道:事件:@bot.comm 查看详情

Django - 第二次发送 OPTIONS 请求会将正文数据附加到请求方法

】Django-第二次发送OPTIONS请求会将正文数据附加到请求方法【英文标题】:Django-SendingOPTIONSrequestsecondtimewillappendbodydatatorequestmethod【发布时间】:2019-05-2311:11:26【问题描述】:问题是当正文中有内​​容使用OPTIONS方法时,第二个... 查看详情