Comment Récupérer Un Schéma Précis D'une Bdd Postgresql

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',



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é :confused: