Bonjour
2 Questions
Question 1: Dans le cas d'une application utilisant plusieurs base de données j'aimerais savoir si quelqu'un a deja pu partager des informations entre plusieurs bases:
Concretement au niveau config/database.php j'ai la config defaut et disons la config autrebase est ce que le fait de faire table_id dans une base en me référant à une autre permet automatiquement d'importer les données ou il y a t'il quelquechose à faire
Question 2: Le mode console qui me permet de créer mes vu via mes templates ne me donne que les tables de la base par défaut, il y a t'il un fichier de configuration à changer ou une commande a insérer pour voir les tables de mes 4 BDs?

Merci a qui répondra

4 réponses


BenFarhat
Auteur
Réponse acceptée

Question 2 résolue! Pour ceux comme moi qui se la pete en tapant directement cake bake all , ben fallait juste un cake bake et ca demande ensuite (lors de la generation des models ou controllers) quelle BD je veux travailler

BenFarhat
Auteur
Réponse acceptée

Question 1 idem :)
Pour ceux que ca intéresse il suffit de switcher si besoin est

exemple 1

$this->Page->setDataSource('base02');
$this->Page->save($this->request->data);

exemple 2

$this->Post->setDataSource("base01");
$val=$this->Post->find('all',
...
); 
$this->Post->setDataSource("base03"); // Je switch sur l'autre datasource défini dans database.php
$val2=$this->Post->find('all',
...
); 
$this->set(compact('val', 'val2'));
$this->Post->setDataSource("default"); 
debug($val,true,false);
debug($val2,true,false);

Ca m'interessa à fond de jouer avec 2 bdd ! Thanks :) Y a plus qu' à mettre ça en oeuvre... Une autre histoire :)
Quand je regarde tes exemples je me dis ouahhh c'est simple ! :)

Donc selon toi, je n'ai qu'a ajouter une config de database dans mon database.php

Et ensuite dans n'importe quelle action d'un controller, je peux swither à ma guise entre ma BDD1 et ma BDD2 ?

J'ai bon ?! :)

euuuuuuuuuuuuuuuuuuh... oui :)

Juste une remarque si tu écrit les models à la main sans passer par cake bake,
il faut également rajouter une petite ligne a chaque model qui ne fait pas partie de ta config defaut pour que cake sache ou aller chercher les données, ou sauvegarder etc...

class Tonmodel extends AppModel {
    public $useDbConfig = 'autreconfig';
       ...

Sinon ben jusqu' a maintenant j'ai aucun problème:
et en y pensant sur le coup je remarque qu'avant de faire des loadModel ou ClassRegistry::init, je n'ai jamais eu à switcher avec la fonction setDataSource() ca fonctionne automatiquement

:)