Railsで使うpostgresqlのスーパーユーザーを作成する
RailsでPostgresqlを使うときに毎回そのためのユーザーの作成方法を忘れてしまうのでメモ。
まずユーザーを作成
WindowsでChocolatey
を使ってpostgresql
をインストールしてると初期パスワードはPostgres1234
になってるので、
$ psql.exe -U postgres
ユーザ postgres のパスワード: ←ここでパスワードを入力
psql (9.2.1)
"help" でヘルプを表示します.
postgres=# create user deployer;
CREATE ROLE
postgres=# alter user deployer with superuser;
ALTER ROLE
これでパスワード無しのdeployer
ユーザーが必要な権限付きで作成される。
※ Linux系のOSならsudo -u postgres psql
でpsql
コマンドを使いましょう。
パスワード無しユーザーでもOKにする
これだけだとfe_sendauth: no password supplied
というエラーが出てしまうので
C:\PostgreSQL\data\pg_hba.conf
を開いて
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
を
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
に書き換える。
んで管理者権限でコンソールを開いて
net stop postgresql
net start postgresql
でPostgresql
のサービスを再起動させる。
残念ながらrestart
は存在しない。なんでや。
Rails側の設定
あとはいつもどおりconfig/database.yml
をこんなかんじに設定します。
development:
<<: *default
database: project_development
username: deployer
password:
host: localhost
port: 5432
test:
<<: *default
database: project_test
username: deployer
password:
host: localhost
port: 5432</pre>
んで $ rake db:create
, $ rake db:migrate
でデータベースが作成されるのを確認したらOK!