0
由于所连接的数据库启用了大小写敏感(linux/ubuntu),Propel ORM无法在生产环境上进行查询。由于数据库是由另一个组织管理的,因此难以修正它,而不是从我们的最后对代码进行更改。如何使propel orm使用区分大小写的名称
有没有办法强制Propel ORM使用区分大小写的名字?
谢谢!
由于所连接的数据库启用了大小写敏感(linux/ubuntu),Propel ORM无法在生产环境上进行查询。由于数据库是由另一个组织管理的,因此难以修正它,而不是从我们的最后对代码进行更改。如何使propel orm使用区分大小写的名称
有没有办法强制Propel ORM使用区分大小写的名字?
谢谢!
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_]+)(';)"