|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 7 ![]() |
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 :
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, |
||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : août 2007 Messages : 360 ![]() |
Bonjour,
Si j'ai bien cerné ton problème : http://www.doctrine-project.org/api/...mlFromDb%28%29 Cordialement, Mathieu |
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 7 ![]() |
Citation:
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, |
|
|
|
00
|
|
|
#4 | ||
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
Bonjour,
peut-être en regénérant le model ? Code :
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
||
|
|
00
|
|
|
#5 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
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 ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
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 :
Doctrine::generateModelsFromYaml('repertoire_yaml', 'repertoire_model', array('generateTableClasses' => true)); peut-être avec un peu plus d'information sur le besoin ...
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
|
|
#7 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
La question n'était pas pour toi.En principe, quant tu développes tu as de nombreuses base pour un même projet. Elle ne sont pas nécessairement toutes au même niveau. Tu vas avoir un ensemble de 3 bases sur ton poste :
Ensuite tu vas encore avoir deux bases sur un serveur (ou deux serveurs) :
Quant tu fais un changement de structure de la base, tu vas avoir à gérer plusieurs versions de chacune des bases. Ne serais-ce que pour pouvoir, durant le développement, éventuellement maintenir l'existant dans le cas où il y aurait un bug urgent à corriger. C'est pas le top, mais c'est courant. Tu vas donc modifier ton schema, générer une nouvelle base de travail pour la nouvelle version applicative et développer dessus. Quant sera venu le temps des migrations, tu vas pouvoir te servir ce ces différentes bases pour créer une méthode de migration doctrine montante au moins, descendante au mieux. Ces méthodes doivent pouvoir modifier ajouter de nouvelles colonnes, modifier les existantes, créer des tables. Elles doivent aussi, dans la mesure du possible préserver les données existante et, le cas échéant, repeupler la base modifiée au mieux. Il convient de tester soigneusement ces deux méthodes avant de les utiliser sur les serveur de validation et de production. La question qui restait en suspend était, mais ces méthodes ne me crées pas les objets du modèle ! Et bien c'est normal, ce n'est pas leur rôle. Elle ne doivent intervenir que sur les données. Dans tous les cas, nouvelles structures implique nouveau programme, donc mise à jour aussi des script, donc des modèles donc cela va marcher (normalement, mais c'est alors un problème de développeur, plus de doctrine). CQFE (Ce Qu'il Fallait Expliquer).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Développeur informatique Inscription : août 2005 Messages : 1 179 ![]() |
Merci de m'avoir répondu !
__________________
http://cdemarche.developpez.com/ Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com