我有一个名为用户的实体
User
ident Text
...
status Status Default=Claimed
状态是我制作的一种数据类型。我的 Postgresql 表中已经有行,因此在尝试编译时出现 yesod devel 迁移错误
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 但我收到一个错误,说列 Claimed 不存在。如何添加默认值不是文本或数字的列?