首页 > 解决方案 > 我在开发过程中进行了模型迁移。现在生产数据库无法检测到更改

问题描述

因此,我对一些模型进行了一些更改,然后进行了迁移以确保一切都在本地工作。本地数据库是 SQLite

然后我推到 github,然后把它拉到我的 Digital Ocean VPS 上。使用 postgresql 的 VPS

然后我尝试运行 makemigrations 并没有检测到任何更改。尽管所有文件都显示了新的更改。

我在本地进行迁移是否搞砸了?我该如何解决?

标签: djangomigration

解决方案


由于您已经在本地完成了 makemigrations 并推送到生产环境。由于您没有更改模型,因此 makemigrations 无法检测到更改。 但是,如果您在生产中更改模型字段并尝试进行迁移,它将检测到更改。

正如@rudrra所说的最佳实践,不要在服务器中运行makemigrations。此外,始终只在生产文件中更改环境变量。

但是如果您需要更改生产文件中的模型字段,请始终将生产文件拉到本地。(更新本地文件)

来自关于迁移的文档

  • migrate,它负责应用和取消应用迁移。
  • makemigrations,它负责根据您对模型所做的更改创建新的迁移。

推荐阅读