如何配置Prisma生成datetime而非datetime(3)?
解决Prisma DateTime字段生成SQL带(3)的问题
两种配置方式:
1. 单个字段指定精度
直接在目标DateTime字段上添加@db.DateTime(0)注解,强制精度为0,生成的SQL就不会带(3)后缀:
model Activated { created DateTime @default(now()) @db.DateTime(0) @@map(name: "activated") }
执行db push后,对应的SQL会变成:
`created` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
2. 全局统一配置
如果希望所有DateTime字段都默认使用不带精度的格式,在schema的datasource块中添加datetimePrecision = 0配置:
datasource db { provider = "mysql" // 对应你的数据库类型,如mariadb url = env("DATABASE_URL") datetimePrecision = 0 }
这样所有DateTime字段生成SQL时都会默认使用datetime类型,不再附加精度后缀。
注:该配置仅适用于MySQL/MariaDB这类支持datetime精度设置的数据库,不同数据库的语法可能略有差异。
内容的提问来源于stack exchange,提问作者angry kiwi
相关产品推荐
相关产品推荐

