Mise à jour vers une nouvelle version de développement d'un module à l'aide de Drush (ignorant les versions ponctuelles / recommandées, sans supprimer le contrôle de version)

20

[NB: Cette question vient du dos, mais est distincte / à la suite d'une de mes précédentes questions, ici .]

J'utilise Drush depuis un bon moment, mais de temps en temps je suis perplexe. Pour le moment, je ne sais vraiment pas comment procéder.

Scénario: actuellement, le site utilise une version de développement, datée dans le passé. En attendant, aucune version ponctuelle n'a été créée, mais une nouvelle version de développement l'a été. Nous avons donc quelque chose comme:

Reroute Email           6.x-1.x-dev (2010-Sep-27)
Recommended version:    6.x-1.0 (2008-Jul-24)   
Development version:    6.x-1.x-dev (2011-Feb-25) 

Faire drush dl <module>-6.x-1.x-devécrase le répertoire existant avec la dernière version de dev 1.x. C'est bien, mais cela supprime le dossier .svn.

Si je le fais drush upc <module>, il téléchargera la version ponctuelle (voir la modification ci-dessous), ce que je ne veux pas, mais si je le fais drush upc <module>-6.x-1.x-dev, il actualise simplement les données de mise à jour et me dit ensuite "Version spécifiée déjà installée" sur la ligne appropriée sur le production.

Alors, comment puis-je utiliser drush pour écraser l'ancienne version de développement, obtenir la nouvelle à sa place, sans jeter le dossier SVN?

EDIT: En fait, dans ce cas, drush upc <module>télécharge la version correcte, mais je suis sûr que si la version de point était datée comme 6.x-1.0 (2011-Jan-24), elle l'aurait obtenue. Quelqu'un veut-il clarifier / corriger?

NikLP
la source

Réponses:

9

J'ai trouvé votre question tout à l'heure parce que j'avais exactement la même question. Je n'ai pas trouvé de réponse exacte, mais cela a fonctionné pour moi:

#svn rm <module>  
#svn commit -m"removing the module... whatever you want to write"  
#drush dl <module>-6.x-2.x-dev  
#svn add <module>  

Pour une raison quelconque, ne pas faire la validation entre le rm et le dl a causé un problème avec svn. Je ne sais pas assez sur svn pour savoir pourquoi, mais je serais reconnaissant si quelqu'un pouvait élaborer!

rainbreaw
la source
Salut @rainbreaw, peut-être que la réponse à mon autre Q ici pourrait être utile?
NikLP
7

Essayez drush dl module-6.x-1.x-dev --svnsync.

forsythes
la source
Cela pourrait se déprécier bientôt drushselon GH # 1056 .
kenorb
2

Il peut y avoir des tâches d'installation dont la nouvelle version d'un module a besoin pour fonctionner correctement, par exemple si la version de développement a un schéma différent.

Avant de drush dl module-7.x.2.x jeter un œil aux détails de désinstallation et d'installation dans le module.

Attention si vous avez des données que vous ne voulez pas perdre dans les tables db concernées. Faites une sauvegarde si vous êtes inquiet ou incertain.

Si vous en avez besoin, désactivez et désinstallez le module avant de télécharger et d'activer le nouveau module.

Utilisez drush dis puis drush pm-uninstall

chim
la source
1
La désinstallation du module peut également supprimer toutes les données qu'il a enregistrées dans la base de données. Le script update.php n'est-il pas censé gérer les modifications de schéma d'une version à l'autre?
Tony Patrinos
C'est un bon point, je vais modifier ma réponse
chim