2016-08-03 105 views
0

由于所连接的数据库启用了大小写敏感(linux/ubuntu),Propel ORM无法在生产环境上进行查询。由于数据库是由另一个组织管理的,因此难以修正它,而不是从我们的最后对代码进行更改。如何使propel orm使用区分大小写的名称

有没有办法强制Propel ORM使用区分大小写的名字?

谢谢!

回答

0

Propel在生成的文件中有一个Map目录。该目录包含所有推送到MySQL使用的表和列名称的映射。

我们通过编写一个简单的python脚本来解决我们的问题,该脚本按照我们的要求修正了区分大小写。

Map目录内的每个文件都对应于一个表的映射。我们的脚本由一个打开每个文件一个,取而代之的是我们的具体要求每个映射(这是使表名大写):

下面是我们用来匹配表名映射的正则表达式:

"(\s*const TABLE_NAME = ')([a-zA-Z_]+)(';)" 

RegEx用于匹配每个文件中的列映射:

"(\s*\* the column name for the.*\s*\*\/.*\s*const [a-zA-Z_]+ = ')([a-zA-Z_]+)(\.[a-zA-Z_]+)(';)" 
相关问题