テンプレートからプロジェクトの作成
まずは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
コメントを書く