2011-10-27 3 views
1

je fais mes premiers pas dans le monde du plugin symfony, et je suis un peu perdu ... Symfony 1.4.4 - Migration Doctrine et installation du plugin

J'ai une application en temps réel avec une base de données. Habituellement, quand j'ai besoin d'une nouvelle table ou d'un champ , je fais une migration, en mettant à jour mon schéma.yml, en appelant les commandes generate-migration-diff et build --all-classes --and-migrate de symfony .

Aujourd'hui, j'ai besoin d'installer un plugin (c'est-à-dire, sfCombinePlugin) afin de minify mes scripts js et css. Je l'ai installé via la commande plugin: install de symfony , c'est ok J'ai tous mes fichiers dans le dossier plugins . Je suis le read-me, il dit de construire le modèle, donc je lance la commande doctrine doctrine: build-model, et un dossier sfCombinePlugin apparaît dans mon dossier lib/model/doctrine.

Mais maintenant je suis coincé, j'ai besoin d'ajouter la table dans ma base de données. Dans la lecture, il est indiqué de générer le sql via doctrine: build-sql, et d'exécuter le généré sql dans ma base de données. Mais je vois quelques problèmes à venir ...

Effacera-t-il mes données en exécutant le fichier sql? Je suis assez sûr que ce sera, parce qu'il crée la base de données à partir de zéro ...

Donc, je voudrais utiliser une migration, comme je le fais habituellement. Mais quand je lance le generate-migration-diff, il ne prend pas en compte le fichier schema.yml du dossier du plugin. Est-ce normal ou est-ce un bug?

J'ai pensé à copier le contenu du plugin schema.yml dans le fichier app schema.yml, mais je ne suis pas sûr que ce soit une bonne idée, parce que les classes du modèle ne seront pas dans le sfCombinePlugin dossier, mais dans le dossier du modèle général . Et ça ne sonne pas bien.

Répondre

0

build-sql créera simplement les fichiers SQL; insert-sql écraserait la base de données. Quand je fais l'addition de table comme ceci, j'ai juste regardé dans le SQL généré dans data/sql et ai ajouté les tables à la main. s2 a des migrations intégrées, IIRC. Pour s1.4 vérifier http://www.symfony-project.org/plugins/sfPropelMigrationsLightPlugin - vient de trouver via google, je ne l'ai jamais utilisé.

+0

Salut, s1.4 a aussi un système de migration, exactement, c'est doctrine orm. Mais il ne prend pas en compte le fichier schema.yml du répertoire plugin pour générer les classes de migration. Et c'est le problème:/ – Philippe

+0

Ah. La plupart de mes projets ont utilisé Propel, donc malheureusement je ne suis pas expérimenté avec les outils Doctrine. – yitznewton