如何将Heroku上的生产数据库克隆到开发数据库

时间:2013-07-12 22:31:49

标签: ruby-on-rails heroku

我使用Ruby on Rails 3.2.13。

本地开发环境中的SQLite3。

Heroku的生产环境(PostgreSQL)。

使用上述先决条件将数据库从生产阶段拉到开发阶段的最新(!=已弃用)和最简单的方法是什么?

2 个答案:

答案 0 :(得分:5)

你可以用点击宝石

来做到这一点

heroku db:pull

在heroku上也有一些关于这个主题的帖子:

https://blog.heroku.com/archives/2009/3/18/push_and_pull_databases_to_and_from_heroku https://devcenter.heroku.com/articles/heroku-postgres-import-export

答案 1 :(得分:0)

您可以使用以下命令从Heroku中提取最新的生产环境:

curl -o latest.dump `heroku pgbackups:url`

从那里你需要将转储从PG转换为SQLite可以读取的内容。其步骤如下:

  1. 删除以SET
  2. 开头的行
  3. 删除以SELECT pg_catalog.setval
  4. 开头的行
  5. 替换true
  6. ‘t’
  7. 替换false
  8. ‘f’
  9. 添加BEGIN;作为第一行,END;作为最后一行
  10. 最后,您需要将其导入SQLite。

    sqlite3 db/development.sqlite3
    sqlite> delete from schema_migrations;
    sqlite> .read latest.sql
    

    您可以阅读details on this procedure here