構築環境
- 装置スペック
- CPU : i5-4310M 2.70GHz
- RAM : 8.0GB
- OS : Microsoft Windows 10 Pro 64Bit
Haskell Stackのインストール
-
OSを選び、ダウンロード(windowsだと普通にダウンロード、macOSやLinuxだとwget・curlを使ってダウンロードできる)
-
Haskell Stack の設置確認
-
HelloWorld.hsの作成
#!/usr/bin/env stack -- stack --install-ghc runghc main :: IO () main = putStrLn "Hello World"
-
terminalで
stack haskell
を入力し、「Hello World」の出力を確認
プロジェクト作成
-
scaffolded site templateのpostgreSQL版でpgcrudフォルダを作成
stack new pgcrud yesod-postgres stack build yesod-bin cabal-install --install-ghc stack build
-
stack buildで
pg_config.exe
が見つけられないとエラーが出たら、postgreSQLのbinフォルダを環境変数に追加(C:\Program Files\PostgreSQL\9.3\bin
) -
Windows PowerShell
ではpg_config.exe
が取れないので、cmd上で実行すること
posrgreSQLでユーザとDBを作成(pgAdminⅢのlocal serverで実行)
-
ユーザの生成:ログインロールを右クリックし、「新しいログインロール」でユーザを二つ追加する
ロール名:kwon パスワード:kwon
-
DBの生成:データベースを右クリックし、「新しいデータベース」で実際使うDBとテスト用のDBを作成する
名前:yesod オーナー:kwon
Yesodでのデータベース接続設定
-
ここではプロジェクト名に合わせてユーザやDBを作成すると書いてあるが、実際は
config/settings.yml
でDBのsettingが普通にできるdatabase: user: "_env:PGUSER:kwon" password: "_env:PGPASS:kwon" host: "_env:PGHOST:localhost" port: "_env:PGPORT:5432" database: "_env:PGDATABASE:yesod" poolsize: "_env:PGPOOLSIZE:10"
-
test用のDBも設定したいなら、
config/test-setting.yml
で他のDB(オーナーは同じく)だけを設定する。database: database: yesod_test
プログラム稼働
stack exec -- yesod devel
- これを実行すると、つなげたDBにサンプルデータのテーブルが生成される(comment, email, user)
- テストも実行してみたいなら、
stack test
で、設定したyesod_test
DBにテーブルができたらOK - http://localhost:3000/ に接続し、Comment作成やユーザ登録などでDBが更新されるかを確認する。
- ここまで設定したら、他の作業はsqliteでのと同じなので ここ などを参考し、次の実装をしてもOK