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

Prisma ^4.12.0跨Windows/Linux表名生成不一致,如何统一?

解决Prisma跨系统生成表名大小写不一致的问题

你遇到的表名差异问题,根源在于不同系统下数据库的大小写敏感性配置不同,加上Prisma默认的命名行为导致的。可以通过以下两种方式统一行为:

方法1:配置Prisma命名策略(推荐)

在prisma/schema.prisma的generator client区块中添加namingStrategy配置,强制指定表名的生成规则,不受系统或数据库设置影响。

统一为蛇形小写表名(如my_super_cool_table)

generator client {
  provider        = "prisma-client-js"
  namingStrategy = {
    model = "snake_case"   // 将PascalCase模型名转为蛇形小写作为表名
    column = "snake_case"  // 字段名同步转为蛇形小写
  }
}

统一为与模型名一致的驼峰式表名(如MySuperCoolTable)

generator client {
  provider        = "prisma-client-js"
  namingStrategy = {
    model = "keep"         // 保留模型的PascalCase作为表名
    column = "camelCase"   // 字段名保留驼峰式
  }
}

配置完成后,删除现有迁移文件和开发数据库,重新执行pnpm prisma migrate dev即可生成统一格式的表名。

方法2:调整数据库大小写敏感性(以MySQL为例)

如果使用MySQL,可通过修改数据库配置统一表名大小写行为:

  • Linux系统:在my.cnf(或my.ini)配置文件中添加lower_case_table_names=1,重启MySQL服务。该配置会强制将所有表名转为小写存储,与Windows默认行为一致。
  • 注意:修改此配置前需删除现有数据库并重新创建,否则会出现表名不匹配的异常。

注意事项

  • 确定命名规则后,所有开发、测试及生产环境需保持一致,避免后续迁移或数据访问出现问题。
  • 若已有迁移记录,必须清空旧迁移文件和对应数据库,重新执行迁移才能让新的命名策略生效。

内容的提问来源于stack exchange,提问作者Page not found

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 03:48:22