ユーザーというエンティティがあります
User
ident Text
...
status Status Default=Claimed
ステータスは私が作ったデータ型です。Postgresql テーブルに既に行があるため、コンパイルしようとすると yesod devel migration エラーが発生します
Migrating: ALTER TABLE "user" ADD COLUMN "status" VARCHAR NOT NULL
31/Oct/2013:07:17:19 -0500 [Debug#SQL] "ALTER TABLE \"user\" ADD COLUMN \"status\" VARCHAR NOT NULL" [] @(persistent-1.2.2.0:Database.Persist.Sql.Raw ./Database/Persist/Sql/Raw.hs:37:5)
devel.hs: SqlError {sqlState = "23502", sqlExecStatus = FatalError, sqlErrorMsg = "column \"status\" contains null values", sqlErrorDetail = "", sqlErrorHint = ""}
これは予期されていたことであり、psql に移動して自分で移行を行う必要があることがわかりました。移行コードは次のようになるはずだと思いました: ALTER TABLE "user" ADD COLUMN "status" VARCHAR NOT NULL DEFAULT Claimed ですが、Clailed 列が存在しないというエラーが表示されます。テキストでも数値でもないデフォルト値を持つ列を追加するにはどうすればよいですか?