Propel ORM无法查询 生产环境 环境,因为它连接的数据库启用了区分大小写(linux / ubuntu) . 由于数据库由另一个组织管理,因此修复它比修改代码更难 .
有没有办法强制Propel ORM使用区分大小写的名称?
谢谢!
Propel在生成的文件中有一个Map目录 . 该目录具有表和列名称的所有映射,这些映射推动了MySQL使用的内容 .
我们通过编写一个简单的python脚本解决了我们的问题,该脚本根据我们的要求更正了区分大小写 .
Map目录中的每个文件对应于一个表的映射 . 我们的脚本逐个打开每个文件,并将每个映射替换为我们的特定要求(这是为了使表名大写):
这是我们用于匹配表名映射的RegEx:
"(\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_]+)(';)"
1 回答
Propel在生成的文件中有一个Map目录 . 该目录具有表和列名称的所有映射,这些映射推动了MySQL使用的内容 .
我们通过编写一个简单的python脚本解决了我们的问题,该脚本根据我们的要求更正了区分大小写 .
Map目录中的每个文件对应于一个表的映射 . 我们的脚本逐个打开每个文件,并将每个映射替换为我们的特定要求(这是为了使表名大写):
这是我们用于匹配表名映射的RegEx:
RegEx用于匹配每个文件中的列映射: