将整个数据表(不是整个数据库)从本地机器复制到 heroku postgres



我有一个相对较大的数据表(~4m行(,它已被导入到本地托管的postgresql数据库中。(碰巧它是一个 Ruby on rails 应用程序数据库,但这对于问题的目的来说并不重要 - 除非它有帮助(

我想获取该表并将其添加到heroku postgresql数据库中的相同表中(该表当前为空(。

我将如何快速有效地做到这一点?

我在 Postgres 中发现了这个 将表从一个数据库复制到另一个数据库 但我正在为 heroku 端的语法而苦苦挣扎,即我如何同时连接到两者?我最初连接到哪个数据库?

在该答案中,您最初连接到数据库"source_db"或"my_db"(取决于您正在查看答案中的哪一行(。 据推测,该数据库位于端口 5432 本地运行的实例上,除非未显示的环境变量(或非默认编译(更改了该数据库。 目标数据库名为"target_db",在同一实例中运行。

pg_dump 和 psql 是独立的命令,每个命令都采用它们在独立运行时将采用的所有连接选项。 所以你可能想要这样的东西:

pg_dump -t table_to_copy source_db | psql target_db -h you.heroku.hostname_or_ip

一个问题可能是,如果两个命令都提示输入密码,它可能会弄得一团糟。 您需要先输入哪个密码? 无论顺序如何,他们都会正确阅读它们吗? 如果两者都需要密码,最好安排至少一个由~/.pgpass提供。

最新更新