2016-08-03 1 views
0

Propel ORM ne parvient pas à interroger l'environnement de production car la base de données à laquelle il se connecte est sensible à la casse (linux/ubuntu). Puisque la base de données est gérée par une autre organisation, il est plus difficile de la réparer que d'apporter les modifications au code de notre côté.Comment faire propel orm utiliser des noms sensibles à la casse

Existe-t-il un moyen de forcer ORM Propel à utiliser des noms sensibles à la casse?

Merci!

Répondre

0

Propel dispose d'un répertoire Map dans les fichiers générés. Le répertoire a tous les mappages de noms de tables et de colonnes qui propulsent les utilisations sur ce que MySQL utilise.

Nous avons résolu notre problème en écrivant un script python simple qui corrige la sensibilité à la casse selon nos exigences.

Chaque fichier dans le répertoire Map correspond au mappage d'une table. Notre script a ouvert chaque fichier un par un et a remplacé le chaque mappage avec notre exigence spécifique (qui devait faire les noms de tables majuscules):

Voici le RegEx que nous avons utilisé pour correspondre le mappage des noms de table:

"(\s*const TABLE_NAME = ')([a-zA-Z_]+)(';)" 

RegEx pour le mappage de colonne correspondant dans chaque fichier:

"(\s*\* the column name for the.*\s*\*\/.*\s*const [a-zA-Z_]+ = ')([a-zA-Z_]+)(\.[a-zA-Z_]+)(';)"