Migration d'un projet symfony 1.0 vers symfony 1.2
Par aliel le lundi, juin 22 2009, 15:04 - Symfony - Lien permanent
Tags :
Je présente ici ma méthode pour migrer un projet symfony 1.0 vers symfony 1.2.
En effet, après avoir passer des heures a essayer d'upgrader un projet avec le script fourni en essayant de passer a la version 1.1 puis de 1.1 vers 1.2
l'opération a été un échec, j'ai donc décider de le faire a la main et cela ma pris quelque heures, je vais vous détailler ici la procédure pas à pas.
commençons notre upgrade !
Tout d'abord il faut installer la version de symfony 1.2 que vous trouvez ici,
ensuite créer un nouveau projet
# Exemple: mkdir ~/projets/monProjet1.2 cd ~/projets/monProjet1.2 symfony generate:project monProjet1.2
Installer les plugins dont dépend votre projet que vous trouvez ici
# Exemple: symfony plugin:install sfEasyGMapPlugin
ensuite copier votre schema vers le nouveau projet
# Exemple: cp ~/projets/monProjet1.0/config/schema.yml ~/projets/monProjet1.2/config/schema
n'oublier pas de modifier les paramètres d'accès à la base de données
# Exemple: nano ~/projets/monProjet1.2/config/propel.ini nano ~/projets/monProjet1.2/config/databases.yml # Ou symfony configure:database mysql:host=localhost;dbname=example root password
créer les applications frontend et backend
symfony generate:app --escaping-strategy=on --csrf-secret=UneClefSecrete frontend symfony generate:app --csrf-secret=UneClefSecrete backend
arriver ici, copier vos modules, templates, data et modèles vers le nouveau projet
# les modules cp -r ~/projets/monProjet1.0/app/frontend/modules/* ~/projets/monProjet1.2/app/frontend/modules/ cp -r ~/projets/monProjet1.0/app/backend/modules/* ~/projets/monProjet1.2/app/backend/modules/ # les templates cp -r ~/projets/monProjet1.0/app/frontend/templates/* ~/projets/monProjet1.2/app/frontend/templates/ cp -r ~/projets/monProjet1.0/app/backend/templates/* ~/projets/monProjet1.2/app/backend/templates/ # les images cp -r ~/projets/monProjet1.0/web/images/* ~/projets/monProjet1.2/web/images/ # les css cp -r ~/projets/monProjet1.0/web/css/* ~/projets/monProjet1.2/web/css/ # les javascript cp -r ~/projets/monProjet1.0/web/js/* ~/projets/monProjet1.2/web/js/ # les data et fixtures si vous en avez cp -r ~/projets/monProjet1.0/data/* ~/projets/monProjet1.2/data/ # les modèles (ici attention a ne pas recopier les sous répértoire "map" et "om") il faut utilisé "*.php" pour ne copier que les fichiers php cp ~/projets/monProjet1.0/lib/model/*.php ~/projets/monProjet1.2/lib/model/
pour les autre fichiers je vous conseil de reporter vos modifications a la main avec votre éditeur préférer
nano ~/projets/monProjet1.2/app/frontend/config/app.yml nano ~/projets/monProjet1.2/app/frontend/config/routing.yml nano ~/projets/monProjet1.2/app/frontend/config/security.yml nano ~/projets/monProjet1.2/app/frontend/config/settings.yml nano ~/projets/monProjet1.2/app/frontend/config/view.yml # ect ...
et puis pour finir, exécuter les commandes suivante pour compléter votre migration, puis réparer les erreurs que vous pouvez rencontrer.
symfony propel:build-schema symfony propel:build-sql symfony propel:insert-sql symfony propel:build-model
voila c'est fini !
Si vous avez des questions n'hésitez pas.
2 commentaires
Attention, il y a de nombreuses contraintes à une migration 1.0 vers 1.2 qui ne sont pas listées ici, mais qui dépendent des fonctionnalités de Symfony 1.0 qui ont été utilisées.
En effet de nombreuses méthodes, voire classes entières posent des problèmes de compatibilité (dépréciés, modifiés...), et le code qui les utilisait doit être adapté (par ex. sfMail => Swift_Mailer)
Pour plus de précisions :
v1.0 => 1.1
http://www.symfony-project.org/inst...
v1.1 => 1.2
http://www.symfony-project.org/inst...
Par contre je suis d'accord pour dire que c'est *fastidieux*...... Trop de changements en peu de temps, et des rétro-compatibilités existent mais de manière très insuffisante (des fois j'ai l'impression de passer d'une 1.0 à une 2.0 !!)...
Il parait que la méthode simple et interesente mais y a bcp d'erreurs ,alors si vous pouvez nous donnez plus de détails sur ce qu'on doit faire exactement .
Fil des commentaires de ce billet