【发布时间】:2013-11-01 12:20:42
【问题描述】:
我有一个名为 User 的实体
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 不存在。如何添加默认值不是文本或数字的列?
【问题讨论】:
标签: haskell yesod persistent