Prise en compte des schemas dans postgresql
Bonjour,
J'expérimente actuellement, et depuis peu, MkFramework. Mon but est de l'utiliser comme outil de RAD. Le fait qu'il puisse gérer de multiples connexions de bases de données est une des raisons du choix.
J'utilise mysql, sqlite et intensivement postgresql... mon habitude sous ce sgbd est d'organiser de façon logique les données à l'intérieur de différents schémas... or les paramètres de connexion ne prennent pas en compte ce type d'organisation.
Ma solution, rapide, a été d'ajouter un paramètre (mkFramework\data\genere\bibliolab\conf\connexion.ini.php) pour le spécifier :
Code:
1 2 3 4 5 6
|
pdoPostgresqlExple.dsn="pgsql:dbname=postgres;host=localhost"
pdoPostgresqlExple.sgbd=pdo_pgsql
pdoPostgresqlExple.schema=schema
pdoPostgresqlExple.username=postgres
pdoPostgresqlExple.password=root |
Puis de rajouter dans le connecteur pgsql (mkFramework\lib\framework\sgbd\pdo\sgbd_pdo_pgsql.php) ce petit bout de code à la fonction connect :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
protected function connect() {
if (empty($this->_pDb)) {
$this->_pDb = new PDO(
$this->_tConfig[$this->_sConfig . '.dsn'], $this->_tConfig[$this->_sConfig . '.username'], $this->_tConfig[$this->_sConfig . '.password']
);
// patch
// Si un schema est spécifié dans le fichier de conf
// on l'indique à la base de donnée.
if (isset($this->_tConfig[$this->_sConfig . '.schema'])) {
$this->_pDb->prepare("SET search_path TO {$this->_tConfig[$this->_sConfig . '.schema']}")->execute();
}
}
} |
Ce n'est certainement pas idéal... et pour l'instant ça ne semble pas fonctionner.
Si quelqu'un a une solution, je suis preneur... :)
En tous cas, merci pour cet étonnant et malin framework, qui fait vraiment gagner beaucoup de temps!