gpt4 book ai didi

postgresql - Haskell 持久不同步

转载 作者:行者123 更新时间:2023-11-29 13:31:07 25 4
gpt4 key购买 nike

我正在使用 Yesod 和 Persistent 创建博客(真的很原创,是吗?)。

在某些时候,我更改了模型,Persistent 说我尝试做的事情不安全,我必须手动进行。它说:

Database migration: manual intervention required.
The following actions are considered unsafe:

ALTER TABLE "article" DROP COLUMN "date";

所以我继续在 Postgres 中运行它。事实上,我已经删除了表“article”,我得到了错误:

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 恢复同步?

最佳答案

请将您的创建表代码更改为:

    digoal=# CREATE TABLE "article" 
( "id" SERIAL PRIMARY KEY UNIQUE,
"title" VARCHAR NOT NULL,
"author" VARCHAR NOT NULL,
"day" DATE NOT NULL DEFAULT current_date,
"content" VARCHAR NOT NULL);
CREATE TABLE

PostgreSQL 没有 DATA 函数,所以你可以使用 current_date 代替。

关于postgresql - Haskell 持久不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com