在Heroku Postgres上导入新表时限制停机时间

时间:2016-09-06 01:30:11

标签: postgresql heroku heroku-postgres

我们有一些表格,其中包含大量条目,有时需要重新导入。只涉及一些表,因此我们不使用restore,而是使用与此类似的命令:

heroku pg:psql --app ourapp HEROKU_POSTGRESQL_WHITE < data.sql

大约需要30分钟,主要是因为数据上传(约1GB)。

到目前为止,我们已将应用程序置于维护模式以导入新数据,但我们希望避免将来长时间停机。

在Heroku中实现这一目标的最佳方法是什么?

我们首先想到的减少停机时间的方法是找到一种从服务器运行命令的方法,该服务器具有更好的上传速度,但它仍然不完美。

我们已经考虑过使用关注者,但是当用户与应用程序交互时,需要编写其他一些表格,我们不确定是否可以告诉应用程序即使主数据库不存在也会依赖关注者没问题。

在我们上传新数据,然后清除缓存时,我们还考虑完全缓存所有相关表,但Heroku似乎没有对缓存进行足够的控制来实现这一目标。

1 个答案:

答案 0 :(得分:1)

导入临时第二个表,然后删除第一个表,并在事务中重命名第二个表。