【问题标题】:pulling single table from heroku postgresql从heroku postgresql中提取单个表
【发布时间】:2014-07-10 02:59:27
【问题描述】:

谁能帮我从heroku数据库中提取单个表。

我尝试了以下方法:

heroku db:pull --tables table_name

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

提前致谢

【问题讨论】:

    标签: ruby-on-rails postgresql heroku


    【解决方案1】:

    不确定是否可以从 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
    

    【讨论】:

    • 谢谢你,但我已经尝试了上述两种方法,效果很好,但我无法从数据库中的一个表中获取记录(但我们在 heroku db 中有记录)所以我想从heroku拉一张桌子,但没有运气。如果有任何想法,请帮助我谢谢
    • @anusha 结帐this thread。您可以使用水龙头,但它只能导入整个数据库。导入整个数据库然后使用您的表有什么问题?
    • 当我导入整个数据库时,我无法获取某些表的记录,这就是为什么我想从 heroku 中提取单个表
    • @anusha 你正在获取其他表的记录?
    • 是的,我得到了所有其他表的记录,但没有一个表(获取空记录的表,但在 heroku 中有记录)
    【解决方案2】:

    不确定这是否仍然相关,但您可以实现您想要的提取单个表(或任何其他格式)的 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
    

    在这个块中,您可以定义您可能需要的任何其他逻辑。

    【讨论】:

      猜你喜欢
      • 2014-09-16
      • 2022-01-17
      • 2014-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多