我的新迁移将破坏我在 heroku (postgres) 上的数据库

Posted

技术标签:

【中文标题】我的新迁移将破坏我在 heroku (postgres) 上的数据库【英文标题】:My new migration will brake my database on the heroku (postgres) 【发布时间】:2019-08-27 19:52:49 【问题描述】:

我在这里面临挑战。所以我继承了以前开发人员的模型,并且表格没有正确构建。我添加了一些约束和新表以规范化这些表。在将应用程序推送到 heroku 之前,我在本地机器上对其进行了测试,它实际上破坏了我的数据库。

现在heroku网站已经在制作中,所以有用户信息。我应该如何解决这个问题,我是否需要销毁现有数据库并创建一个新数据库并运行迁移

【问题讨论】:

在编写迁移时务必小心,以免它们破坏您的数据库。如果这是不可能的,你将不得不找出你自己的策略。我们对您的业务需求、应用程序、数据库结构或其他任何事情一无所知。 【参考方案1】:

要非常非常小心。如果您不小心,在生产服务器上应用迁移可能会造成不可逆转的损害,因此您应该为所有可能的情况做好准备。

我最好的建议是为您的实时数据库创建一个完整的副本(使用 Heroku,这就像 PG 转储/备份一样简单)。然后,您可以使用相同的代码创建一个新的暂存站点,将备份上传到一个新的数据库实例中,然后对其进行测试。实时环境并不总是与本地环境相同。然后,您可以在暂存站点上运行迁移,并查看是否有任何意外影响(最好的方法是使用 django 测试用例)。如果有任何问题,请务必了解回滚过程如何与 django 迁移一起使用。

可以在这里找到一个相当新的好教程:https://realpython.com/django-migrations-a-primer/

【讨论】:

以上是关于我的新迁移将破坏我在 heroku (postgres) 上的数据库的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 不会在 Django 中迁移模型

将数据库从 Heroku 迁移到 AWS

无法在 Heroku 上运行迁移 Postgres

无法将本地 Postgres 数据库推送到 Heroku

如何让我在 Heroku 上的 Laravel 项目使用 Heroku Postgres?

heroku Postgres - 续集:主机没有 pg_hba.conf 条目