从heroku postgresql中拉出单个表

时间:2014-07-10 02:59:28

标签: ruby-on-rails postgresql heroku

有人可以帮助我如何从heroku数据库中提取单个表格。

我尝试过以下方式:

heroku db:pull --tables table_name

没有运气,因为heroku db:pull现已弃用。

先谢谢

2 个答案:

答案 0 :(得分:0)

不确定你是否可以从heroku中提取单个表,但肯定有一些选项来提取整个数据库。你可以使用Herokus PG Backups add-on to import or export your database。首先,您必须通过

将其添加为应用中的添加内容
$ heroku addons:add pgbackups
$ heroku update

之后,您可以通过

下载数据库
$ heroku pgbackups:capture
$ curl -o latest.dump `heroku pgbackups:url`

您也可以使用pg:transfer Heroku CLI plugin一步传输数据。

从应用程序的目录中,通过安装插件并执行pg:transfer命令,在本地复制生产数据库(假设本地PG数据库)。

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer

答案 1 :(得分:0)

不确定这是否仍然有意义,但是您可以实现想要提取单个表(或任何其他格式)的CSV转储并导入它的功能。步骤如下:

# 1. Connect to psql on Heroku
$ heroku pg:psql --app your_app_name DATABASE

然后您可以像这样下载表格:

# 2. Pull table_you_want_to_copy
your_app_name::DATABASE=> \COPY table_you_want_to_copy TO '~/local/path/your_table.csv' WITH (FORMAT csv, DELIMITER ',', HEADER true);

一个简单的进口商版本可能看起来像这样:

# 3. Seed local table from fetched CSV
CSV.foreach('~/local/path/your_table.csv, headers: true) do |row|
  YourModel.create(row.to_hash)
end

在此块中,您可以定义其他可能需要的逻辑。