2016-08-03 4 views
0

Propel ORMは、接続先のデータベースが大文字と小文字の区別が有効になっているため(linux/ubuntu)、運用環境でクエリに失敗します。 dbは別の組織によって管理されているため、最終的にコードを変更するよりも修正するのは難しいです。propel ormは大文字と小文字を区別する名前を使用する方法

Propel ORMに大文字小文字を区別する名前を使用させる方法はありますか?

ありがとうございます!

答えて

0

Propelには、生成されたファイルの中にMapディレクトリがあります。ディレクトリには、テーブル名とカラム名のすべてのマッピングがあり、MySQLが使用するものに使用されます。

私たちは、私たちの要件に応じて大文字と小文字を区別するシンプルなpythonスクリプトを作成して、問題を解決しました。

マップディレクトリ内の各ファイルは、1つのテーブルのマッピングに対応しています。私たちのスクリプトは1で、各ファイル1を開いて、(テーブル名大文字にすることでした)私たちの特定の要件に各マッピングを置き換え:

ここでは、テーブル名のマッピングを一致させるために使用される正規表現です:

"(\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_]+)(';)" 
関連する問題