0

アプリが Heroku に正しくデプロイされるように、SQLite から Postgres に移行しようとしています。しかし、私は運がありません。

rake aborted!
PG::ConnectionBad: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5432?

私はPostgresを初めて使用しますが、出くわしたすべての提案を試してみましたが、うまくいきませんでした。これが私のdatabase.yamlファイルです:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5
  timeout: 5000
  host: localhost
  username: postgres 
  password: postgres

development:
  <<: *default
  database: app_development

test:
  <<: *default
  database: app_test

production:
  <<: *default
  database: app_production

Postgres リストにあるように空のデータベースが正しくセットアップされていると思いますが、rake db:migrate を実行すると失敗します。

どんな助けでも大歓迎です。

4

1 に答える 1

0

まだ実行していない場合:

sudo service postgresql start

cloud9ターミナルで

次に、postgres ユーザーに切り替えて、database.yaml で指定したデータベースが作成されていることを確認します。

sudo su - postgres
psql

次に、psql プロンプトで次のコマンドを入力して、使用可能なすべてのデータベースを一覧表示します。

\list

データベースを作成する必要がある場合は、次のように入力して作成できます

CREATE DATABASE "database_name";

postgres ユーザーのパスワードを設定するには

\password postgres

上記の手順を実行した後、database.yaml ファイルに正しいデータベース名、ユーザー名、およびパスワードがあることを確認し、実行してみてください。

rake db:migrate

データベースが正しくセットアップされ、database.yaml ファイルが構成されている場合

postgresサーバーを再起動してみてください

sudo /etc/init.d/postgresql restart

その後、rake db:migrateもう一度実行します

ソース

PostgresSQL のセットアップに関連するCloud9ドキュメント

Rails アプリでの PostgreSQL のセットアップに関連するCloud9フォーラムの投稿

psql パスワードの変更に関連するStackoverflowの投稿

PostgreSQL サーバーの再起動に関連するStackoverflowの投稿

代替 SQLite で開発を開始したアプリを heroku にプッシュする別の方法として、SQLite gem を Gemfile の開発グループに移動し、heroku の依存関係を持つ運用グループを追加する方法があります。

group :production do
  gem 'rails12_factor'
  gem 'pg'
end

次に、運用グループなしで開発バンドルをインストールします。

bundle install --without production

そして、herokuにプッシュするときに通常のバンドルインストールを行います

于 2017-01-26T22:23:57.353 に答える