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

PHP & Base de données Discussion :

[Doctrine] ajouter une table dans un fichier yaml et migration doctrine


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Par défaut [Doctrine] ajouter une table dans un fichier yaml et migration doctrine
    Bonjour à tous,

    je me suis mis depuis peu à doctrine, j'ai un soucis pour ajouter une nouvelle table avec la migration.

    Je vais être amené à rajouter plusieurs tables / semaine pour un projet de dev d'applications.

    Pour automatiser cette tâche j'utilise la migration, ça me génère les classes relatives aux tables, etc... (je précise que je ne suis pas sous symfony)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Doctrine_Core::generateMigrationsFromDiff('/home/djimbo/lib/migrations', 'schema_old.yml', 'schema.yml');
    $migration = new Doctrine_Migration('/home/djimbo/lib/migrations', $conn);
    //fait la migration
    $migration->migrate();
    Tout ça marche bien lorsque je veux ajouter des champs dans une table existante, mais si je souhaite rajouter une table dans mon schema, celle-ci sera crée dans la DB mais les classes correspondantes ne seront pas générées.

    Je pense que ça doit être possible mais mes heures de googling n'ont rien données.

    Si j'utilise la migration c'est dans un soucis de productivité, créer à la main les classes pour chaque tables rajoutées (chaque semaine) ou encore générer les classes à partir de la DB ne m’intéresse pas car trop rébarbatifs.

    Pour le moment je n'ai juste qu'à modifier mon fichier schema.yml avec mes nouveaux champs pour la base existante et tout marche. me manque juste la création de nouvelles tables.

    J'espère avoir été clair.
    Merci d'avance à ceux qui pendront un peu de temps à me répondre.
    Bonnes fêtes de noël,

  2. #2
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonjour,

    Si j'ai bien cerné ton problème :

    http://www.doctrine-project.org/api/...mlFromDb%28%29

    Cordialement,

    Mathieu

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Par défaut
    Citation Envoyé par mathieu44800 Voir le message
    Bonjour,

    Si j'ai bien cerné ton problème :

    http://www.doctrine-project.org/api/...mlFromDb%28%29

    Cordialement,

    Mathieu
    salut mathieu,

    Malheureusement le lien que tu m'envois est une methode pour générer un fichier yaml de schema de base à partir de la base, ce qui est l'inverse de ce que je veux faire.

    je ne veux pas avoir à ajouter les tables dans mysql et ensuite créer un schema yaml (pour ensuite generer des models doctrines pour les tables).
    Je veux pouvoir modifier mon/mes schemas yaml et par la suite générer/updater les models et créer les tables/champs dans mysql, ce qui pourtant fonctionne à l'aide du code cité ci-dessus mise à l'exception de l'ajout d'une nouvelle table dans mon schema ymal qui créer bien la table dans mysql mais ne génère pas le model correspondant dans doctrine.

    ça peut parraître compliqué mais je trouve le côté objet doctrine super mais le côté création DB vraiment bizarre, la majorité des exemples montrent comment partir d'une base ou l'on connait tous les champs de la table, apparement les créateurs n'ont pas pensés que l'on pouvait avoir besoin de rajouter une table en cours de route (bravo le côté évolutif...).

    Doctrine 2 vient de sortir je vais essayer de voir si ce côté est mieux géré...

    Merci pour ton temps

    Joyeux noël,

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    peut-être en regénérant le model ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Doctrine_Core::generateModelsFromYaml('repertoire_yaml','repertoire_model', array());
    [EDIT]oulala ! j'avais pas vu la date du post... [/EDIT]

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    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
    Par défaut
    La date du post n'est pas si loin que cela...

    Et il n'est pas marqué comme résolu. Et les fêtes de noël m'ont fait louper la question

    As-tu une solution ? Où on en reparle ?

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    ben, je ne suis pas vraiment sûr d'avoir compris la question...

    si on a 2 fichiers yaml, dont un nouveau, il suffit de lancer la méthode que j'ai cité au dessus pour générer les classes du modèle.

    si on veut obtenir des classes héritées du model pour plus de souplesse, l'option generateTableClasses peut s'appliquer, ce qui nous donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Doctrine::generateModelsFromYaml('repertoire_yaml', 'repertoire_model', array('generateTableClasses' => true));
    mais cela me semble trop simple pour que cela réponde à la question.
    peut-être avec un peu plus d'information sur le besoin ...


Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2006, 08h46
  2. extraction donnee d'une table dans un fichier
    Par 80stephanie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/03/2006, 10h48
  3. Exporter une table dans un fichier excel
    Par david71 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 07/09/2005, 17h09
  4. [debutant]Sauver une table dans un fichier
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2004, 10h34
  5. Comment Copier une table dans un fichier?
    Par thx2003 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/12/2003, 12h09

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