【发布时间】:2013-07-11 14:12:13
【问题描述】:
我正在使用 Ruby on Rails 3.2.13。
本地开发环境中的SQLite3。
Heroku (PostgreSQL) 的生产环境。
在满足上述先决条件的情况下,将数据库从生产环境拉到开发环境的最新(!= 已弃用)和最简单的方法是什么?
【问题讨论】:
-
你确实应该在本地开发时使用 postgresql,而不是 sqlite。
标签: ruby-on-rails heroku
我正在使用 Ruby on Rails 3.2.13。
本地开发环境中的SQLite3。
Heroku (PostgreSQL) 的生产环境。
在满足上述先决条件的情况下,将数据库从生产环境拉到开发环境的最新(!= 已弃用)和最简单的方法是什么?
【问题讨论】:
标签: ruby-on-rails heroku
你可以用水龙头宝石做到这一点
heroku 数据库:拉动
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
【讨论】:
您可以使用以下命令从 Heroku 中提取最新的生产环境:
curl -o latest.dump `heroku pgbackups:url`
从那里,您需要将转储从 PG 转换为 SQLite 可以读取的内容。具体步骤如下:
SET 开头的行
SELECT pg_catalog.setval 开头的行
true 替换为‘t’
false 替换为‘f’
BEGIN; 添加为第一行,将END; 添加为最后一行最后,您需要将其导入 SQLite。
sqlite3 db/development.sqlite3
sqlite> delete from schema_migrations;
sqlite> .read latest.sql
【讨论】: