【问题标题】:docker-compose error when deploying portainer部署搬运工时 docker-compose 错误
【发布时间】:2021-11-25 12:42:29
【问题描述】:

我正在使用 Portainer 部署 django。

部署时,django镜像日志出现如下错误。

django.db.migrations.exceptions.InconsistentMigrationHistory:迁移 account.0001_initial 在其依赖 users.0001_initial 之前应用于数据库“默认”。

我删除了迁移文件并尝试再次迁移并部署,但发生了同样的错误。

也许我认为问题可能是由自定义用户模型引起的。

我该怎么办?

【问题讨论】:

  • 您可以重置/删除数据库以重新开始吗?如果已应用迁移,则需要取消应用它。 docker-compose down -v 将删除所有卷

标签: python django docker django-rest-framework docker-compose


【解决方案1】:

首先,您不能像那样简单地删除迁移文件,因为迁移状态存储在您的数据库中,而不仅仅是在您的迁移文件中。

打开你的数据库并检查你的 django_migrations 表,你就会明白你的错误来自哪里。错误消息意味着 Django 发现迁移 account.0001_initial 存在于 django_migrations 表上而没有 users.0001_initial,但您的迁移文件定义 users.0001_initial 必须在 account.0001_initial 之前。所以它不知道如何处理冲突。

如果您的数据不重要,只需删除您的数据库并创建一个新数据库即可。其次,您必须按照流程来逆转迁移,而不是在此处删除它https://docs.djangoproject.com/en/3.2/topics/migrations/#reversing-migrations

我建议你阅读整个https://docs.djangoproject.com/en/3.2/topics/migrations/

【讨论】:

  • 感谢您的回答。但我认为这不是解决方案。这就是我现在部署新服务器的原因……对不起,但它确实有很大帮助!
  • 我解决了这个问题!我只是在搬运工卷上创建新数据库.. 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多