创建小写表的教义参数?
Doctrine parameter to create lower-case tables?
Doctrine 使用与实体相似的名称创建 tables,使用相同的大小写。
问题当然是有些系统或环境设置不同,可能会导致dev/stage/prod之间的问题。
虽然我们已经将 lower_case_table_names=1
放入我们的数据库,并手动更改每个 table 映射以使其不敏感,但这不是很方便。
- 必须为每个 table 设置它可能很繁重。
- 从维护的角度来看,这不仅会增加工作量,还会增加创建新 tables
时出错的风险
- 必须在 MySQL 端设置数据库参数并不是繁重的工作,但可能总是会增加不必要的并发症
所以这是我的问题:
是否没有现有的方法可以让 Doctrine 以小写形式创建 tables?
我觉得很奇怪的是(据我所知),标准是 entities/classes 以大写开头,而数据库 table 名称应该只是 lower_case.
所以我期望默认行为会创建小写的 tables,或者至少,一个简单的布尔 Doctrine 参数可以启用它。
我们使用 Symfony2。
这是用于我们 table 的映射(在 this SO thread 中找到)
/**
* @Entity
* @Table(name="something")
*/
class Something {
[...]
}
我也读到了 underscore naming strategy
,但是用下划线替换驼峰式大小写并不意味着它也会删除起始资本,是吗?
(我不是该项目的开发人员,所以我无法尝试)
在config.yml中:
doctrine:
orm:
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore
Doctrine 使用与实体相似的名称创建 tables,使用相同的大小写。 问题当然是有些系统或环境设置不同,可能会导致dev/stage/prod之间的问题。
虽然我们已经将 lower_case_table_names=1
放入我们的数据库,并手动更改每个 table 映射以使其不敏感,但这不是很方便。
- 必须为每个 table 设置它可能很繁重。
- 从维护的角度来看,这不仅会增加工作量,还会增加创建新 tables 时出错的风险
- 必须在 MySQL 端设置数据库参数并不是繁重的工作,但可能总是会增加不必要的并发症
所以这是我的问题:
是否没有现有的方法可以让 Doctrine 以小写形式创建 tables?
我觉得很奇怪的是(据我所知),标准是 entities/classes 以大写开头,而数据库 table 名称应该只是 lower_case.
所以我期望默认行为会创建小写的 tables,或者至少,一个简单的布尔 Doctrine 参数可以启用它。
我们使用 Symfony2。 这是用于我们 table 的映射(在 this SO thread 中找到)
/**
* @Entity
* @Table(name="something")
*/
class Something {
[...]
}
我也读到了 underscore naming strategy
,但是用下划线替换驼峰式大小写并不意味着它也会删除起始资本,是吗?
(我不是该项目的开发人员,所以我无法尝试)
在config.yml中:
doctrine:
orm:
entity_managers:
default:
naming_strategy: doctrine.orm.naming_strategy.underscore