つよく、やさしく、泥臭く生きていくブログ

日常とポエムと、ときどき技術

postgresqlを使う

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