3

私の独特のケースがこのフォーラムですでに回答されているかどうかは尋ねませんので、再質問はご容赦ください。

開発にsqlite3データベースを使用するRailsアプリがあり、アプリに必要なすべてのデータがすでに含まれています。このアプリをherokuにプッシュすると、heroku run rake db:migrateを実行するまで、向こうのアプリを表示できませんでした。これでアプリを表示できますが、管理者アカウントでログインしたり、データベースのデータを必要とするその他の操作を実行したりすることはできません。以下のgemファイルに示されているように、私はすでに必要なことをすべて実行しました(私は思います):

    source 'https://rubygems.org'

gem 'rails', '3.2.12'
gem 'bcrypt-ruby'
gem 'kaminari'
gem 'gon'
.
.
.
gem 'jquery-rails', '2.0.2'

group :development, :test do
  gem 'sqlite3', '1.3.7'
end

group :production do
  gem 'pg', '0.12.2'
end
.
.

heroku db:pushも試しましたが、それも役に立ちませんでした。主な問題は、私が他の誰かとこのアプリに取り組んでおり、バージョン管理にgithubを採用していることです。しかし、お互いに更新を取得するたびに、sqliteデータベースは常に空になっているように見えます。したがって、この問題を解決するには、通常、更新されたデータベースを他のデータベースに直接電子メールで送信する必要があります。他のデータベースは、それを使用して、ローカルリポジトリの空のデータベースを置き換えます。heroku rakedb:migrateの理由はこれだと思います。

しかし、私たちが開発のここまで来たので、私たちは本当に最初からやり直す余裕がありません。リモートのherokuデータベースにローカルリポジトリデータベースのコンテンツを入力する方法はありますか?ご回答ありがとうございます

4

1 に答える 1

4

データをsqliteからsqlダンプファイルにエクスポートし、postgresのローカルでの使用を開始する必要があります。sqliteをローカルで使用し続け、postgresをリモートで使用し続けると、時間がかかります。

ローカルに移行した後は、PGバックアップを使用したHerokuPostgresデータベースのインポートとエクスポートに関するこのガイドに従ってください。

db:pushまた、またはを使用しないでくださいdb:pull。それらは非推奨です。

アップデート

ローカルのpostgresでSQLファイルを取得するには、最初にpostgres(Homebrew、macports、その他...)をインストールしてセットアップし、次に次のようにします。

$ psql -U user -d database < file.sql

そこから、pg_dumpユーティリティを使用して.dumpファイルにエクスポートできます。SQLをHerokuPostgresに直接インポートすることもできます。

# this will delete ALL data in your postgres, so make sure it's what you want
$ heroku pg:reset HEROKU_POSTGRESQL_COLOR --app app_name
$ heroku pg:psql HEROKU_POSTGRESQL_COLOR --app app_name < file.sql
于 2013-03-12T21:57:53.733 に答える