Propel ORM 无法在生产环境中查询,因为它连接的数据库启用了区分大小写(linux/ubuntu)。由于数据库由另一个组织管理,因此修复它比从我们端更改代码更难。
有没有办法强制 Propel ORM 使用区分大小写的名称?
谢谢!
Propel ORM 无法在生产环境中查询,因为它连接的数据库启用了区分大小写(linux/ubuntu)。由于数据库由另一个组织管理,因此修复它比从我们端更改代码更难。
有没有办法强制 Propel ORM 使用区分大小写的名称?
谢谢!
Propel 在生成的文件中有一个 Map 目录。该目录包含所有表名和列名的映射,这些映射推动使用到 MySQL 使用的内容。
我们通过编写一个简单的 python 脚本来解决我们的问题,该脚本可以根据我们的要求更正区分大小写。
Map 目录中的每个文件对应一个表的映射。我们的脚本一个一个地打开每个文件,并将每个映射替换为我们的特定要求(将表名设为大写):
这是我们用来匹配表名映射的 RegEx:
"(\s*const TABLE_NAME = ')([a-zA-Z_]+)(';)"
用于匹配每个文件内的列映射的正则表达式:
"(\s*\* the column name for the.*\s*\*\/.*\s*const [a-zA-Z_]+ = ')([a-zA-Z_]+)(\.[a-zA-Z_]+)(';)"