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

标签 postgresql heroku backup pg

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

我知道 pg_dump 允许自定义参数,让您排除某个表被转储。

如果不做任何疯狂的事情,比如拥有 2 个数据库,1 个用于数据,1 个用于存档,有没有办法从 Heroku 下载除了存档表之外的所有内容?

我仍然需要它来保存文件表的备份,但我不想下载它。我可以在需要时独立于备份进行 pg_dump 吗?

我知道可能性不大,但如果有任何建议,我将不胜感激。

最佳答案

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

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

使用 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:q<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="75021007010c04021007010c3510164758445844584458445b161a180500011058445b1418140f1a1b1402065b161a18" rel="noreferrer noopener nofollow">[email protected]</a>: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:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a9d8deccdbddd0d8deccdbddd0e9ccca9b849884988498849887cac6c4d9dcddcc849887c8c4c8d3c6c7c8deda87cac6c4" rel="noreferrer noopener nofollow">[email protected]</a>: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 - 自定义页 :dump options with Heroku pg:backups capture?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29780483/

相关文章:

sql - 地址/邮政编码和电话的部分/匹配的复杂查询帮助

ruby-on-rails - 如何在 Rails 中定义 postgres 函数以及它们的范围和生命周期是什么?

postgresql - 如何从 SQL 创建 CSV 文件?

go - 为 go.mod 文件指定 Go 版本

ruby-on-rails - rails heroku - 如何安装需要 'npm install ...' 的 javascript 依赖项

django - Pycharm错误: Improperly configured

ruby-on-rails - 出现 asset not present in asset pipeline 错误后,无法将我的 Rails 应用程序部署到 heroku

powershell - Hyper-V 使用 PowerShell 实时备份 VHD

java - 如何在 Android 上以编程方式备份​​应用程序

php调用sqlserver备份数据库脚本,备份文件创建后删除