Django 丢失了迁移文件

如何解决Django 丢失了迁移文件

我有一个 django 应用程序连接到 postgresql 数据库(在 AWS 上运行的 RDS 实例)

最近,我在我的数据库表中添加了新字段,但忘记在本地运行 makemigrations 并将代码推送到服务器。由于没有应用更改,服务器宕机,为了快速解决问题,我决定直接在应用程序的 docker 容器中运行 makemigrationsmigrate,我认为它会生成迁移文件,但是不幸的是,它没有。迁移是在数据库级别应用的,但没有更改的迁移文件

在容器中运行 python manage.py showmigrations 时,输出

redirect
 [X] 0001_initial
 [X] 0002_redirect_clicks
 [X] 0003_redirect_name

但在数据库中,运行 SELECT * FROM django_migrations; 表明还有一次迁移:

103 | redirect           | 0004_auto_20210707_2039     | 2021-07-07 14:39:19.058233+00

你有什么建议?我想在本地运行 makemigrations生成文件并将其推送到 vcs,然后在服务器上使用 migrate --fake 应用更改。

我不知道这到底是做什么的,我太害怕没有指导就去做,任何帮助将不胜感激

解决方法

当前的解决方案(不理想):

我在本地生成迁移文件,将其推送到 VCS,在远程服务器上,我不得不使用 python manage.py migrate <app_name> zero 取消应用程序的所有迁移(这导致应用程序中数据库表的数据丢失,因此请考虑在执行此操作之前两次)然后再次应用它们,但现在使用在第一步中生成的迁移文件。一切恢复正常,但显然有更好的解决方案

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?