You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Kysely Codegen生成模型时使用原始数据类型而非Generated类型

Kysely-Codegen 所有字段生成Generated类型的原因与解决方法

原因分析

  • Kysely的Generated类型用于标识数据库自动生成的字段,kysely-codegen会根据数据库字段的元数据自动添加这个类型:
    • 字段是自增主键(如MySQL的AUTO_INCREMENT、PostgreSQL的SERIAL)
    • 字段设置了默认值(如DEFAULT true、DEFAULT CURRENT_TIMESTAMP)
    • 字段由数据库触发器自动生成
      这个设计是为了让Kysely在执行插入/更新操作时,明确这些字段不需要手动提供值。

解决方法

全局禁用Generated类型

使用kysely-codegen的配置参数关闭该功能:

  • 命令行执行:
    kysely-codegen --no-generated-types
    
  • 或者在配置文件(如kysely-codegen.config.js)中设置:
    module.exports = {
      generatedTypes: false,
      // 其他配置项...
    };
    

针对特定字段调整

  • 修改数据库字段定义:如果某些字段不需要自动生成属性(比如去掉自增、删除默认值),重新生成代码后这些字段会变为原始类型。
  • 手动修改生成文件:直接把Generated<XXX>替换为对应的原始类型(如number、boolean),但注意重新生成代码时会覆盖修改,适合临时场景。

内容的提问来源于stack exchange,提问作者Rene Enriquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:24:53