heroku でDB使うならとりあえずheroku postgresかなあというところで、さてpostgresはろくに触ったことがない。
とりあえずローカル環境にposgresを用意した。
これを参考 UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順 - Qiita
- Ubuntu環境
- インストール
$ sudo apt-get install postgresql
postgresqlをインストールすると、heroku pg:psql -c "\d" とかできるようになった。
もちろんテーブルとか作ってないので何か出るわけではない。
ローカルでアプリの動作確認するにはローカルのposgre DBを用意する必要があるので次に進む。 - postgres サーバ立ち上げ
$ sudo service postgresql start
psql コマンドでpostgresのプロンプトに入る
$ sudo -s
# su - postgres
postgres@VB:~$ psql
postgresはRoleというものがあり、権限がなければ入れない。
初期状態では postgres という名前が用意されている。(postgresをインストールするとpostgresユーザが作られる)
postgres のパスワードが分らなかったのでroot経由で行った。ロール確認・作成
postgres=# \du
postgres=# CREATE ROLE yukinea LOGIN CREATEDB PASSWORD 'hogehoge';
DB確認・作成
postgres=# \l
postgres=# CREATE DATABASE testdb OWNER yukinea;
認証の設定
$ sudo vim /etc/postgresql/9.3/main/pg_hba.conf
こんな感じで これのpeer のところをtrustに変更した
# local all all peer local all all trust
postgres再起動
$ sudo service postgresql restart
接続
$ psql -U yukinea --dbname testdb --password