创建小写表的教义参数?

Bal*_*our 3 mapping doctrine case-insensitive symfony

Doctrine 使用相同的大小写创建名称与实体相似的表。当然,问题是某些系统或环境有不同的设置,这可能会导致 dev/stage/prod 之间出现问题。

虽然我们已经安装lower_case_table_names=1了数据库,并手动更改了每个表映射以使其不敏感,但这并不是很方便。

  • 必须为每张桌子设置它可能会很繁重。
  • 从维护的角度来看,这不仅会增加工作量,而且在创建新表时也会增加出错的风险
  • 在 MySQL 端设置数据库参数并不是繁重的工作,但可能总是会增加不必要的复杂性


所以这是我的问题:
是否没有现有的方法可以要求 Doctrine 以小写形式创建表格?
对我来说,似乎很奇怪的是(据我所知),标准是具有以大写字母开头的实体/类,而数据库表名称应该仅是小写。

所以我期望默认行为会创建小写表,或者至少,一个简单的布尔 Doctrine 参数可以实现这一点。

我们使用 Symfony2。这是用于我们的表的映射(在此 SO 线程中找到)

/**
 * @Entity
 * @Table(name="something")
 */
class Something {
    [...]
}
Run Code Online (Sandbox Code Playgroud)

我也读过有关 的内容underscore naming strategy,但用下划线替换驼峰式大小写并不意味着它也会删除起始资本,不是吗?(我不是该项目的开发人员,所以无法尝试)

lll*_*ypa 7

设置更好的命名策略:https://www.doctrine-project.org/projects/doctrine-orm/en/2.10/reference/namingstrategy.html#underscore-naming-strategy

在config.yml中:

doctrine:
    orm:
        entity_managers:
            default:
                naming_strategy: doctrine.orm.naming_strategy.underscore
Run Code Online (Sandbox Code Playgroud)