tanebisse
(Tanebisse)
1
Bonjour,
La ligne suivante permet de récupérer dans un tableau les noms des tables d’une BDD pour le schéma “public” (ou par défaut) :
$tables = Yii::app()->getDb()->getSchema()->getTableNames();
Hors dans ma base PosgreSQL j’ai 2 schémas le “public” et un autre appelé “vgs”.
Avec cette commande
Yii::app()->getDb()->getSchema()
je ne récupère que le schéma public. Quelle est la commande pour lui préciser le schéma souhaité "vgs".
Salut !
A ma connaissance, il faut étendre la classe CDbConnection qui gère ta connexion à la base de données, de la manière suivante :
class MyDbConnection extends CDbConnection {
protected function initConnection($pdo)
{
parent::initConnection($pdo);
$stmt=$pdo->prepare("SET search_path TO ton_schema, public");
$stmt->execute();
}
}
Ensuite dans ton fichier de config :
'db'=>array(
'class'=>'MyDbConnection',
tanebisse
(Tanebisse)
3
J’ai enfin trouvé et c’est tout simple, il suffit de passer le nom du schéma en paramètre de la fonction getTableNames
$tables = Yii::app()->getDb()->getSchema()->getTableNames("mon_schema");
Ah mince, j’avais mal compris la question, désolé