如何让Kysely Codegen生成模型时使用原始数据类型而非Generated类型
Kysely-Codegen 所有字段生成
Generated类型的原因与解决方法 原因分析
- Kysely的
Generated类型用于标识数据库自动生成的字段,kysely-codegen会根据数据库字段的元数据自动添加这个类型:- 字段是自增主键(如MySQL的
AUTO_INCREMENT、PostgreSQL的SERIAL) - 字段设置了默认值(如
DEFAULT true、DEFAULT CURRENT_TIMESTAMP) - 字段由数据库触发器自动生成
这个设计是为了让Kysely在执行插入/更新操作时,明确这些字段不需要手动提供值。
- 字段是自增主键(如MySQL的
解决方法
全局禁用Generated类型
使用kysely-codegen的配置参数关闭该功能:
- 命令行执行:
kysely-codegen --no-generated-types - 或者在配置文件(如
kysely-codegen.config.js)中设置:module.exports = { generatedTypes: false, // 其他配置项... };
针对特定字段调整
- 修改数据库字段定义:如果某些字段不需要自动生成属性(比如去掉自增、删除默认值),重新生成代码后这些字段会变为原始类型。
- 手动修改生成文件:直接把
Generated<XXX>替换为对应的原始类型(如number、boolean),但注意重新生成代码时会覆盖修改,适合临时场景。
内容的提问来源于stack exchange,提问作者Rene Enriquez
相关产品推荐
相关产品推荐

