Propel ORM无法查询生产环境,因为它连接到的数据库启用了区分大小写功能(linux/ubuntu(。由于数据库由另一个组织管理,因此修复它比从我们端对代码进行更改更困难。
Propel在生成的文件中有一个Map目录。该目录具有表名和列名的所有映射,这些映射将MySQL的使用推向MySQL的使用。
有没有办法强制Propel ORM使用区分大小写的名称?
谢谢!
我们通过编写一个简单的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_]+)(';)"