2016-08-03 71 views
0

由於所連接的數據庫啓用了大小寫敏感(linux/ubuntu),Propel ORM無法在生產環境上進行查詢。由於數據庫是由另一個組織管理的,因此難以修正它,而不是從我們的最後對代碼進行更改。如何使propel orm使用區分大小寫的名稱

有沒有辦法強制Propel ORM使用區分大小寫的名字?

謝謝!

回答

0

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