[Yesod] PostgreSqlの使い方

[Yesod] PostgreSqlの使い方

テンプレートからプロジェクトの作成

まずはStackのテンプレートを使用してプロジェクトを作成します。テンプレートにはyesod-postgresを使用します。

$ stack new my-project yesod-postgres

PostgreSQLの設定

とりあえず適当にPostgreSQLをインストールしておきます。それから使用するユーザー、データベースを作成しておきます。Yesodのプログラムから作成したDBに接続してみます。

仮にいま、db名を「yesod-db」、ユーザーを「yesod-user」、パスワードを「yesod-pass」と設定したとします。

YesodでのDB情報の設定

DB接続に関する設定は、config/settings.ymlにあるので、それを次のように変更します。portやhostも必要があれば変更してください。

database:
  user:     "_env:PGUSER:yesod-user"
  password: "_env:PGPASS:yesod-pass"
  host:     "_env:PGHOST:localhost"
  port:     "_env:PGPORT:5432"
  # See config/test-settings.yml for an override during tests
  database: "_env:PGDATABASE:yesod-db"
  poolsize: "_env:PGPOOLSIZE:10"

これでビルド時にマイグレーションが実行され、DBが更新されます。stack testで使用するDB情報はコメントの通り、config/test-settings.ymlにあるのでそれを設定してやりましょう。

プログラム側からのDB操作方法はSQLiteの時と同じ方法です。runDB ~でアクセスできます。ただし、Haskellでの型とDBの型の対応は当然異なるので事前に参考URLから確認しておきましょう。

参考URL

Haskellカテゴリの最新記事