typescript - Mikro-orm 属性类型日期和字段类型字符串的迁移错误

标签 typescript postgresql types graphql mikro-orm

我使用 graphql、typescript、mikro-orm 和 postgresql 在帖子上实现 CRUD。属性createdAt有问题:

DriverException: alter table "post" alter column "created_at" type timestamptz(0) using ("created_at"::timestamptz(0)); - cannot cast type jsonb to timestamp with time zone

这是createdAt属性的实体:

@Field(() => String)
@Property({ type: "date" })
createdAt = new Date();

这两个是从 createdAt 实体生成的迁移


    this.addSql('alter table "post" drop constraint if exists "post_created_at_check";');
    this.addSql('alter table "post" alter column "created_at" type timestamptz(0) using ("created_at"::timestamptz(0));');

我该如何修复这个错误?我需要更改哪些类型?

最佳答案

好的,我的问题解决了。在此之前,我要感谢 Mikro-orm 的创建者的回复。

我决定放弃整个数据库并创建一个新数据库。 它仍然无法正常工作,我发现 yarn tsc -w 有一些错误,这意味着我必须删除 dist 文件夹并再次运行该命令。

我终于开始收到不同的错误。我首先想到用 type String 替换 type timestamptz(0) 但显然我不知道我的类型是否正确。

我四处寻找,最后改变了类型:

    this.addSql(`CREATE TABLE "post" ("id" SERIAL NOT NULL, "title" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now())`);

关于typescript - Mikro-orm 属性类型日期和字段类型字符串的迁移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63995529/

相关文章:

javascript - 如何在现有的申请中实现邀请注册?

node.js - Electron 、TypeScript、SQLite : package. json 未找到

ruby-on-rails - psql 错误 : relation already exists

sql - PostgreSQL 根据表字段生成月份和年份序列,如果给定月份没有数据,则用空值填充

sql - 我如何加入派生表?

Java API设计: narrow return type in methods

python - 是否可以使用类型正确复制类

javascript - 在 sublime 中制作箭头函数片段的快捷方式

typescript - 如何将使用 typesafe-actions createAsyncAction 创建的操作传递给生成具有正确类型的 redux-observable 史诗的函数?

c - 为什么 c 数组声明为变量名而不是类型