ruby - 如何合并 Heroku 上具有相同架构的两个数据库?

标签 ruby database merge heroku

我在heroku 上创建了两个本质上相同的应用程序。它们一开始就不同,因为我正在测试上传到 Heroku,并且在调整时遇到了一些挑战。

但现在一切似乎都正常,但两者都有我想合并的数据。由于它们运行相同的 git 存储库,因此代码和迁移都是相同的。

似乎我需要将其放在本地并合并,但不太清楚如何做到这一点。在 Google 上进行了一些搜索,但没有任何明确的信息。

我需要一些分步帮助,我没有明确的流程。

1)我在 Heroku 上有两个应用程序,其中有数据库。它们具有相同的架构;

2)我不需要知道数据来自哪里:我只需要将它们全部驻留在一个数据库中

3) 我希望能够使用特定的 sql 命令来完成此操作,而不是手动打开(不确定我会如何做到这一点)然后进行修改,因为大约有 10 个不同的相互关联的表。

谢谢!

最佳答案

没有自动方法可以做到这一点,因为没有办法以通用方式自动执行此操作(不做一些您想做的事情)。因此,这将需要几个步骤,但您可以一路利用工具。

您可以使用 Heroku 的内置工具来获取表的转储。首先下载数据并将其导入数据库,然后将其转储到文本文件(SQL 格式)中。

一旦您获得了 SQL 文本数据集之一,您就需要对该文件进行一些编辑。您需要将其设为导入脚本,而不是通过删除现有行(或表)开始的“重建数据库”脚本。如果您小心的话,它可能已经是正确的格式,但可能会出现一些问题。

您可能会遇到一些问题:

  • 如果您已经为记录生成了键(您可能会这样做),那么您必须在要导入的数据集中对它们重新编号。可能有一种方法可以在不生成 key 的情况下导出它们,但我所做的是使用快速 grep 将它们重新编号到我要合并到的数据库范围之外。
  • 如果其他表中存在对这些键的引用(作为外键),您也必须在那里重新编号。
  • 某些表可能是“引用表”,并且在两个系统上都是相同的,因此您可以跳过导入它们。
  • 某些表可能不需要合并。

一旦文本文件形状良好,就可以在本地运行它并进行测试。如果它把事情搞砸了,不用担心——只需下载生产数据(您要导入的数据),然后重试。不断迭代,直到一切在本地运行良好。然后,将文件上传到heroku。

我知道这听起来像是几个步骤——而且确实如此。不过,没有什么棘手的问题需要解决。你只需要慢慢地、小心地走。找人与你合作,帮助你彻底思考。

关于ruby - 如何合并 Heroku 上具有相同架构的两个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3320967/

相关文章:

ruby - 哈希默认值是具有相同默认值的哈希

java - 如何动态更改 sql 'like' 运算符?

mysql - 跟踪数据库用户执行的操作

python - 是否可以列出合并失败的数据框中的值?

sql - “合并”样式操作与文字值?

javascript - 如何防止 jQuery onclick 事件中的 Ruby 方法在页面刷新时执行

ruby-on-rails - 销毁用户模型后,无法重新添加用户模型

ruby - 使用 Time.zone 使用 strptime 解析时间

python - Django QuerySet 用子查询注释

javascript - 合并两个 map 对象并返回自定义对象javascript