python - Elasticbeanstalk/多个数据库的 Django 迁移过程

标签 python django amazon-web-services amazon-elastic-beanstalk django-migrations

我正在使用 Django 和 Elasticbeanstalk 开发一个小型 Web 应用程序。 我创建了一个具有两个环境(暂存环境和生产环境)的 EB 应用程序,创建了一个 RDS 实例并将其分配给我的 EB 环境。

对于开发,我使用本地数据库,因为部署到 AWS 需要相当长的时间。

但是,我在迁移方面遇到了麻烦。因为我每隔几分钟在本地进行开发和测试,所以我倾向于在本地和两个环境上进行不同的迁移。

因此,一旦我将应用程序的当前版本部署到某个环境,“manage.py migrate”大多数时候都会失败,因为表已经存在或不存在,即使它们应该存在(因为另一个环境已经创建了表) )。

所以我想知道在使用多个环境进行开发、暂存和生产时如何处理迁移过程,其中一些常见和一些排他的数据库实例可能不会始终反射(reflect)相同的结构?

我是否应该从代码存储库和 eb 部署中排除迁移文件,并在每次部署后运行 makemigrations & migrate?我是否应该使用 .ebextensions 自动运行迁移并通过其中一个实例手动应用所有迁移?

在不同环境中使用具有不同数据库实例的相同 Django 应用程序的推荐方法是什么?

最佳答案

似乎您可能在某个时间点删除了表或迁移。

当您运行 makemigrations 时,django 创建 migratins,当您运行 migrate 时,它​​会创 build 置文件中指定的数据库。

有一件事是,如果您继续创建迁移并且不在特定数据库中运行它,那绝对没问题。每当您切换到数据库并运行迁移时,它都会处理它,因为每个数据库都会在 django-migrations 表中存储到目前为止已运行迁移的点,并且仅开始运行下一个迁移。

要解决您的问题,您可以删除所有数据库和迁移文件,然后重新开始,因为您可能正在测试。一切都会顺利,直到您删除任何服务器中的迁移或数据库。

如果您有宝贵的数据,您应该进入迁移文件和表来分析和管理事物。

关于python - Elasticbeanstalk/多个数据库的 Django 迁移过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39500513/

相关文章:

javascript - AWS Lambda 中的 FTP - 下载文件时出现问题(异步/等待)

java - NoClassDefFoundError : SupportedEllipticPointFormatsExtension after Glassfish restart

php - 如何获取亚马逊所有品类的产品?

python - Sphinx 会处理导入不佳的代码吗?

python - gensim LDA 模块 : Always getting uniform topical distribution while predicting

javascript - 如何访问django中数据表外的数据表的ajax响应?

Python + Django 在 apache2 (httpd)、Redhat 上的不同用户下运行

python - 列名和相应的数据在 python 中不匹配

python - Django:用户登录时发出信号?

python - 使用缓存时计数为 "page views"或 "hits"