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_]+)(';)"