Aktualisieren auf eine neuere Dev-Version eines Moduls mithilfe von Drush (Ignorieren von Point / Recommended Releases, ohne die Versionskontrolle in den Papierkorb zu werfen)

20

[NB Diese Frage ist nicht Teil meiner früheren Frage, aber hier getrennt .]

Ich benutze Drush schon eine ganze Weile, aber hin und wieder bin ich ratlos. Im Moment bin ich mir nicht sicher, wie ich das anstellen soll.

Szenario: Derzeit verwendet die Site eine Entwicklungsversion, die in der Vergangenheit veraltet war. In der Zwischenzeit wurde kein Point Release erstellt, sondern ein neueres Dev Release. Wir haben also so etwas wie:

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) 

Dabei wird drush dl <module>-6.x-1.x-devdas vorhandene Verzeichnis mit der neuesten Version 1.x dev überschrieben. Das ist in Ordnung, aber der Ordner .svn wird dabei in den Papierkorb verschoben.

In diesem drush upc <module>Fall wird die Punktveröffentlichung heruntergeladen (siehe Bearbeitung unten), die ich nicht möchte. In diesem Fall werden jedoch drush upc <module>-6.x-1.x-devnur die Aktualisierungsdaten aktualisiert, und in der entsprechenden Zeile der wird die Meldung "Angegebene Version bereits installiert" angezeigt Ausgabe.

Wie verwende ich drush, um die alte Entwicklungsversion zu überschreiben und die neue zu ersetzen, ohne den SVN-Ordner in den Papierkorb zu werfen?

BEARBEITEN: In diesem Fall wird tatsächlich drush upc <module>die richtige Version heruntergeladen, aber ich bin mir ziemlich sicher, dass diese Version erhalten worden wäre, wenn die Zwischenveröffentlichung mit 6.x-1.0 (24.01.2011) datiert worden wäre. Möchte jemand präzisieren / korrigieren?

NikLP
quelle

Antworten:

9

Ich habe Ihre Frage gerade gefunden, weil ich genau die gleiche Frage hatte. Keine genaue Antwort gefunden, aber das hat bei mir funktioniert:

#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>  

Aus irgendeinem Grund verursachte das Nichtbeachten des Commits zwischen rm und dl ein Problem mit svn. Ich weiß nicht genug über SVN, um zu wissen, warum, aber ich wäre dankbar, wenn jemand näher darauf eingehen könnte!

Regenhauch
quelle
Hallo @rainbreaw, vielleicht könnte die Antwort auf meine andere Frage hier von Nutzen sein?
NikLP
7

Versuchen Sie es drush dl module-6.x-1.x-dev --svnsync.

Forsythes
quelle
Dies könnte in Kürze drushgemäß GH # 1056 abgeschrieben werden .
Kenorb
2

Möglicherweise sind einige Installationsaufgaben für die neue Version eines Moduls erforderlich, um ordnungsgemäß zu funktionieren, z. B. wenn die Dev-Version ein anderes Schema aufweist.

drush dl module-7.x.2.x Schauen Sie sich also vorher die Deinstallations- und Installationsdetails im Modul an.

Seien Sie vorsichtig, wenn Sie Daten haben, die Sie nicht in den betroffenen DB-Tabellen verlieren möchten. Machen Sie ein Backup, wenn Sie sich Sorgen machen oder nicht sicher sind.

Deaktivieren und deinstallieren Sie das Modul, bevor Sie das neue Modul herunterladen und aktivieren.

Verwenden Sie drush dis und anschließend drush pm-uninstall

chim
quelle
1
Bei der Deinstallation des Moduls werden möglicherweise auch alle in der Datenbank gespeicherten Daten gelöscht. Soll das Skript update.php keine Schemaänderungen von Version zu Version verarbeiten?
Tony Patrinos
Das ist ein guter Punkt, ich werde meine Antwort ändern
chim