【发布时间】:2014-04-11 23:58:02
【问题描述】:
我正在使用 Yesod 和 Persistent 创建博客(真的是原创,嗯?)。
在某个时候,我改变了我的模型,Persistent 说我尝试做的事情是不安全的,我必须手动完成。它说:
Database migration: manual intervention required.
The following actions are considered unsafe:
ALTER TABLE "article" DROP COLUMN "date";
所以我继续在 Postgres 中运行它。事实上,我已经继续删除了“文章”表,我得到了错误:
Migrating: CREATe TABLE "article"
( "id" SERIAL PRIMARY KEY UNIQUE,
"title" VARCHAR NOT NULL,
"author" VARCHAR NOT NULL,
"day" DATE NOT NULL DEFAULT DATE,
"content" VARCHAR NOT NULL)
devel.hs: SqlError { sqlState = "42703"
, sqlExecStatus = FatalError
, sqlErrorMsg = "column \"date\" does not exist"
, sqlErrorDetail = ""
, sqlErrorHint = ""
}
这是架构当前的外观(使用 Persistent 定义):
-- Blog Article
Article
title Text
author Text
day Day default=DATE
content MathJax
这里发生了什么?我必须做些什么才能让 Postgres 和 Persistent 重新同步?
【问题讨论】:
标签: postgresql yesod