IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ORM PHP Discussion :

[Doctrine Migration] Comment utiliser une connexion pour les fichiers générés par une migration diff ?


Sujet :

ORM PHP

  1. #1
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut [Doctrine Migration] Comment utiliser une connexion pour les fichiers générés par une migration diff ?
    Bonjour,

    J'ai deux connexions dans mon fichier databases.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    all:
      connection1:
        class: sfDoctrineDatabase
        param:
          dsn: 'mysql:host=myhost;dbname=dbname1;'
          username: username
          password: pwd
      connection2:
        class: sfDoctrineDatabase
        param:
          dsn: 'mysql:host=myhost;dbname=dbname2;'
          username: username
          password: pwd
    J'ai changé différents points dans mon schema (ajout d'une clé étrangère sur une table de la connection2 vers une autre table de la connection1).

    Si je fais un doctrine:build --all, aucun soucis, la relation fonctionne mais ce n'est pas ce que je veux.

    J'ai utilisé symfony doctrine:generate-migrations-diff. Du coup, j'ai deux fichiers de migrations auto générés.

    Mais je ne trouve pas comment définir que pour telle action de migration, elle doit utiliser telle ou telle connexion.

    Si vous avez des idées
    symfony power user !

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je récapitule,

    Tu as une ancienne application, une nouvelle version. Mais qui tournent dans la même application avec des liaisons entre l'ancienne et la nouvelle version ???

    Et tu veux migrer la 1 en 2 mais avec des liaisons entre les deux ???

    Fin de récapitulation, j'ai pas compris. Bon, OK, j'ai travaillé tard ce soir, mais, pourrais-tu être plus précis sur ce que représente dbname1 et dbname2 leurs relations entres elles actuels et futures ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Non non encore plus simple .
    L'idée ici est d'avoir une connexion spécifique à une base qui servira dans plusieurs projets (une base de codes postaux) afin d'éviter d'avoir des informations en plusieurs exemplaires.

    Je cherche juste à pouvoir définir quelle connexion utiliser dans un fichier de migration.
    symfony power user !

  4. #4
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    M'a énervé ton truc.

    J'ai re-parcouru toute la doc de symfony et nada, rien sur la possibilité de choisir la connexion, ce qui n'est pas logique. Vu qu'ils doivent bien ce servir d'un objet similaire pour créer les tables et qu'ils peuvent créer dans plusieurs connections.

    "Ils" me dis-je ! Mais c'est bien sur, c'est pas sur symfony qu'il faut créer mais sur doctrine, donc go sur la doc a doctrine et la page de création des fichiers de migrations (bien plus de documentation en une seul page).

    Et ... nada.

    Bon, je me suis rejeté sur le code de l'objet doctrine_migration et là j'ai trouvé.

    Tu as une méthode setConnection() qui accepte un objet Doctrine_Connection.

    Donc tu dois y avoir accès dans ton fichier de migration et pouvoir faire d'une migration deux bases.

    Bonne chance !
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  5. #5
    Membre averti Avatar de sacricri
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 384
    Points
    384
    Par défaut
    Bonsoir,

    Merci d'avoir pris du temps pour mon problème :p

    J'avoue avoir effectivement aperçu cette option mais dans l'optique d'un plugin, c'est pas vraiment efficace.

    J'ai envoyé un mail à Jonathan Wage mais pas de réponse pour le moment.
    symfony power user !

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    En fait, tu connais bien la table qui ne bouge pas.

    De là, dans le fichier yml tu peux retrouver la connexion a utiliser. Et l'autre.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/01/2012, 21h11
  2. Réponses: 1
    Dernier message: 19/09/2011, 09h04
  3. Réponses: 3
    Dernier message: 26/09/2010, 15h38
  4. Comment utiliser plusieurs proxys pour les sockets http ?
    Par dawadam dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 02/06/2010, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo