まず、postgresql が実行されていることを確認する必要があります。開始する必要がある場合は、次のコマンドを実行します。
$ sudo service postgresql start
インタラクティブな postgresql ターミナル psql に入ります。
$ sudo sudo -u postgres psql
ユーザーを作成してそのパスワードを入力し、psql を終了します。
postgres=# CREATE USER username SUPERUSER PASSWORD 'password';
postgres=# \q
環境変数を作成して config.yml ファイルに配置し、それらを ~/.profile ファイルにエクスポートします。
$ echo "export USERNAME=username" >> ~/.profile
$ echo "export PASSWORD=password" >> ~/.profile
次に、postgresql から template1 を更新します。
$ sudo sudo -u postgres psql
postgres# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
postgres# DROP DATABASE template1;
postgres# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
postgres# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
postgres# \c template1
ガベージを収集し、実行中のデータベースを分析しますVACUUM
。
postgres# VACUUM FREEZE;
postgres# \q
この内容が以前に行ったことと一致するように、構成ファイルを更新します。
default: &default
adapter: postgresql
encoding: unicode
pool: 5
username: <%= ENV['USERNAME'] %>
password: <%= ENV['PASSWORD'] %>
host: <%= ENV['IP'] %>
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
production:
<<: *default
database: app_production
pg gem がインストールされているかどうかを確認し、インストールされていない場合は実行し、それを Gemfile に追加してからバンドルします。
gem install pg
bundle install
データベースがまだ作成されていない場合、および/または次のメッセージが表示される場合:
ActiveRecord::NoDatabaseError: FATAL: database "<project_name>_development" does not exist
次に、適切なコマンドを実行して作成します。
rake db:create
すべてが正常に実行されているかどうかをテストするには、単純な scaffold を生成してみてください。
rails g scaffold Post title content:text
この移行とそのコンテンツをデータベースに永続化するには、migrate コマンドを実行します。
rake db:migrate
成功した場合は、すべて問題なく動作するはずです。次を実行できます。
rails console
データベースに新しいレコードを作成します。
Post.create title: 'Number one', content: 'Lorem Ipsum'
そして、コーディングと楽しみを続けてください。
注:次のようなエラーを実験した場合:
PG::ConnectionBad: fe_sendauth: no password supplied
次に、env 変数に問題がないことを確認します。エラーが続く場合は、config.yml ファイルに名前とパスワードを「ハードコード」できますが、これはお勧めできません。最悪の場合。