gpt4 book ai didi

postgresql - 自定义 pg :dump options with Heroku pg:backups capture?

转载 作者:行者123 更新时间:2023-11-29 11:59:48 26 4
gpt4 key购买 nike

在开发时,我需要拉取最新的数据库,以便我知道我正在使用最新的数据。但是,我们保留了一张表,里面装满了我不需要费心下载的文件,因为它是一个非常大的表。

我知道 pg_dump 允许自定义参数,这些参数可以让您将某个表排除在转储之外。

如果不做任何疯狂的事情,比如拥有 2 个数据库,1 个用于数据,1 个用于归档,是否有任何方法可以从 Heroku 下载除归档表之外的所有内容?

我仍然需要它来保存存档表的备份,但我不想下载它。我可以只在需要时做一个与备份分开的 pg_dump 吗?

我知道这是不可能的,但我们将不胜感激任何建议。

最佳答案

使用 heroku pg:backups capture 时,您不能添加任何自定义 pg_dump 选项。该命令实际上调​​用了一个未记录的 Heroku Postgres API,并且它不传递任何参数(see here for the code 如果您好奇的话)。

您可以做的是运行您自己的指向 Heroku Postgres 实例的 pg_dump 转储命令。

使用 pg:credentials 获取连接信息,如果您有多个数据库附加到应用程序,其中 DATABASE_URL 也可以是数据库颜色:

> heroku pg:credentials DATABASE_URL --app app_name
Connection info string:
"dbname=zzxcasdqwe host=ec2-1-1-1-1.compute-1.amazonaws.com port=1111 user=asdfasdf password=qwertyqwerty sslmode=require"
Connection URL:
postgres://asdfasdf:qwertyqwerty@ec2-1-1-1-1.compute-1.amazonaws.com:1111/zzxcasdqwe

获取连接信息字符串或连接 url 并将其作为 pg_dump 的第一个参数并添加您的自定义选项

pg_dump "dbname=zzxcasdqwe host=ec2-1-1-1-1.compute-1.amazonaws.com port=1111 user=asdfasdf password=qwertyqwerty sslmode=require"\
-n schema -t table -O -x -Fc -f dump.out
# OR
pg_dump postgres://asdfasdf:qwertyqwerty@ec2-1-1-1-1.compute-1.amazonaws.com:1111/zzxcasdqwe \
-n schema -t table -O -x -Fc -f dump.out

我还与人合写了一个 Heroku plugin (parse_db_url)它将 DATABASE_URL 解析为其他格式,如 pg_dump、pg_restore、pgpass 等。我发现它在处理几个不同的 Heroku 数据库时很有用。

关于postgresql - 自定义 pg :dump options with Heroku pg:backups capture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com