0

我是移动设备程序员,我是数据库、网络、服务器编程方面的新手,这个问题让我恶心 :(

我已经为这种情况挖了一整天,没有答案能解决我的问题。

我的 Ruby on Rails 项目中有 production.sqlite3,这是在 AWS 服务器中使用 sqlite3 DB 在生产模式下。

现在我使用没有数据(空)的postgresql DB将此应用程序上传到heroku,在生产模式下更改sqlite3-> postgresql。

我想在 production.sqlite3 中传输数据以清空删除 postgresql 数据库。

我怎样才能做到这一点?我无法理解如何实现这一目标。

1) 本地 sqlite3 -> 直接远程清空 postgresql 数据库?

2)本地sqlite3->本地postgresql(迁移)->远程空postgresql DB?

我通过macports安装了postgresql92(因为heroku远程postgresql版本),

所以路径是'/opt/local/lib/postgresql92'。

我试过了

  • pg:转移

  • psql

  • pg_ctl

并且仍然不知道这样做。请帮我解决这种情况。

4

1 回答 1

1

最好在所有环境中使用相同的数据库。我还不能发表评论要求澄清,所以我会尽力回答你的问题。对不起,如果我太基本了。

如果您需要将数据从 SQLite 传输到 PostgreSQL 数据库,则必须使用诸如https://github.com/ricardochimal/taps之类的工具手动执行此操作。您必须设置本地 PostgreSQL 数据库并从 SQL 数据库导入数据。然后,您可以使用以下命令将数据推送到 heroku:

db:push [<database_url>] # push a local database into the app's remote database

将 PostgreSQL gem 添加到 Gemfile

gem 'pg'

使用 PostgreSQL 的示例 database.yml 文件

development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5


test:
  adapter: postgresql
  encoding: unicode
  database: app_test
  pool: 5


production:
  adapter: postgresql
  encoding: unicode
  database: app_production
  pool: 5

接下来,您需要创建数据库

rake db:create:all

确保在这一切之后,rails 开发数据库是 psql(运行 rails db)

这就是确保 rails 使用 psql 的方式。

于 2013-09-20T15:08:27.790 回答