Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Deployment Lösung für Drupal 7 - ich kann nichts vernünftiges finden...

Eingetragen von mccoy (63)
am 17.06.2014 - 11:19 Uhr in
  • Modul-Entwicklung
  • Drupal 7.x

Hallo,

ich betreibe eine Seite auf der täglich neue Inhalte erstellt werden und auch täglich neue User sich registrieren. Gibt es für Drupal eine vernünftige Deployment-Lösung? Aktuell mache ich es so:

1. Live-Projekt kopieren und MySQL-Dump erstellen.
2. Live-Projekt in Dev Projekt umbenennen und die DB in eine "dev" DB einspielen.
3. Im Dev Projekt entwickeln
4. Und jetzt?

Nun habe ich ein Problem mit dem Zurückspielen. Wenn ich nun einige Tage etwas entwickle, weicht der DEV-Stand vom LIVE-Stand natürlich gravierend ab. Es wurden einige neue Inhalte von neuen Usern erstellt. Ich setze auch einige Plugins ein und ich weiß nicht, welche Tabelle alle eine Abhängigkeit zueinander haben. Reicht es aus die Node-, User- und die entsprechenden Verknüpfungstabellen aus Live in das Dev System einzuspielen?

Wie kann man die Projekte wieder sauber "mergen" ?

Wie macht ihr das?

Danke vorab.

VG

‹ fboauth und die neue facebook graph api Date Popup Feld -> Kalender Icon ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Live-Projekt in Dev

Eingetragen von Jenna (1883)
am 17.06.2014 - 13:57 Uhr
Zitat:

Live-Projekt in Dev Projekt umbenennen und die DB in eine "dev" DB einspielen

Genau das würde mich auch brennend interessieren, so gesehen eine Staging Plattform, das nach Updates, Weiterentwicklung mit dem aktuellen Stand von Usern und Nodes weiter gearbeitet werden kann.

Bisher ist mir das Feeds Modul bekannt (event. auch Features), habe mich aber noch nicht in die Struktur eingearbeitet da es mich nach der Installation erschlagen hat an Möglichkeiten.

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist bei Drupal 7 auch

Eingetragen von wla (9461)
am 17.06.2014 - 17:32 Uhr

Das ist bei Drupal 7 auch alles noch nicht so einfach. Inhaltstypen kann man mittels bundel_copy übertragen. Views kann man exportieren und importieren, rules ebenso. Bei anderen Konfigurationen muß man die Arbeit auf der Live-Seite nochmal machen. Das ist alles noch nicht so befriedigend.
Bei Drupal 8 wird die Konfiguration in speziellen Dateien abgelegt, die man dann versionieren und auch problemlos von einem auf das andere System übertragen kann, ohne daß man sich um die Inhalte kümmern muß.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Es gibt verschiedene

Eingetragen von JThan (396)
am 17.06.2014 - 19:44 Uhr

Es gibt verschiedene Ebenen.

1. Dateien, Module => Code
Alles was Code ist, sollte über ein Versionsverwaltungssystem laufen (git). Das bedeutet, du entwickelst und testest und lädst dann den Code hoch.

2. Inhalte, Konfigurationen => Datenbank
Runterladen der Datenbank von Live ist oft hilfreich, um mit tatsächlichen Inhalten zu arbeiten und zu entwickeln. Auf DEV solltest du keine Inhalte einpflegen, die du nachher auch auf live haben willst - da du hier testest und entwickelst und testest, macht das auch wenig Sinn. Live-Inhalte also immer auf Live erstellen. Bleiben die Konfigurationen (Einstellungen in der Drupal-Oberfläche die in der Datenbank gespeichert werden, alles mögliche wie z.B. Views, Inhaltstypen, und vieles mehr). Dafür gibt es das Features Modul und die zu diesem Kreis gehörenden Module.

3. Code und Datenbank
Beim Update von Modulen kommt es vor, das zusätzlich zum Code auch Datenbankänderungen anstehen. Dazu muss die update.php aufgerufen werden, die sich darum kümmert. Diese Funktionsollte also auch für selbst geschriebene Module verwendet werden.

Je nach Größe deines Projekts ist ein System mit DEV und LIVE vll. auch zu wenig, und es sollte zusätzlich noch die stage TEST geben. Dazu gibt es dann noch versch. Automatisierungstools. Drush ist hilfreich (sql-sync), vor allem mit den Drush Aliasen.

So, jetzt hast du zumindest ein paar Punkte für die weitere Recherche. Mit Drupal 8 soll es aber viele weitere Verbesserungen für diese Problemstellung geben.

Viel Erfolg.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Erstmal danke für die

Eingetragen von mccoy (63)
am 18.06.2014 - 09:50 Uhr

Erstmal danke für die Antworten.

Also wenn ich das richtig verstehte, gibt es wohl für Drupal 7 noch keine vernünftige Lösung. Und erst durch die Trennung von Konfig und Inhalt mit Drupal 8 es eine brauchbare Lösung geben wird....

Zu den Lösunsansätzen

Zitat:

1. Dateien, Module => Code

Ja genau so sehe ich das auch. Die Module sind nicht das große Problem.

Zitat:

2. Inhalte, Konfigurationen => Datenbank

Das herunterladen der LIVE-DB hat nur das Problem, dass ich nicht den kompletten Dump in meine DEV Umgebung einspielen kann. Ansonsten überschreibe ich mir ja auch z.B. die neuen Views oder CCK Felder, welche ich im DEV angelegt habe. Oder es müssen Module wieder aktiviert werden, etc etc.

Das Feature Modul scheint recht mächtig zu sein. Ehrlich gesagt, etwas zu mächtig für mich. Ich will eigentlich nur die aktuellen Inhalte von Live auf DEV bringen.

Ich habe gestern mal das Modul data_export_import getestet. Dort kann man Nodes, Taxonomien und User exportieren und dann wieder im DEV System importieren. So kann ich mir zumindest den DEV Stand, was Inhalt und User angeht, aktuell halten.

Soweit ich das gesehen habe (noch nicht ausprobiert) kann man die Exports auch per Rules (oder Cronjob) ansteuern. Die Export Dateien werden als Files auf dem System abgelegt und können dann, z.B. per Shell Script, auf den DEV Server verschoben und wieder im DEV System eingespielt werden. Also hier könnte man sich was recht brauchbare "basteln". Aber mal ehrlich, richtig gut ist was anderes, oder?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Man bekommt das mit Drupal

Eingetragen von manuelBS (330)
am 18.06.2014 - 13:00 Uhr

Man bekommt das mit Drupal schon sehr gut hin. Wie schon vorher geschrieben ist die Lösung, die Konfiguration aus der Datenbank in Code zu packen. Dazu sind das Features Modul und das Strongarm Modul das Mittel der Wahl. Wenn man das Deployment automatisieren möchte, verwendet man GIT, um den exportierten Features-Code zu versionieren und per Jenkins zu deployen (ohne das Kopieren und überschreiben der Datenbank den Code auf einen anderen Server zu transportieren). In Google gibt es dazu zahlreiche Blogpost.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wenn ich das richtig verstehe

Eingetragen von maen (547)
am 20.06.2014 - 18:49 Uhr

Wenn ich das richtig verstehe geht es im Prinzip darum, die von der Community zwischen dem Zeitintervall "habe einen DB-Clone erstellt" und "spiele den DB-Clone evtl mit neuen Feldern zurück" erstellten neuen Einträge zu berücksichtigen.

Hierzu ein Gedankenspiel:
letzter erstellter node vor export in Testumgebung: id = 1;
3 Tage Entwicklung , dann node id auf der aktiven Seite = 3;

Auf der Entwicklungsseite neue Felder eingefügt und Inhalte generiert. Darunter node mit id = 2 UND / XOR neue Felder.

Wie sollte der merge ablaufen?

Via drush kann ich doch nur den cache auflösen. Aber ein merge von wegen "erhöhe den Eintrag der Testumgebung auf node id = 4 von node id =2"???

Ist das mit gegebenem Standardprogramm echt lösbar? Meiner Meinung nach müsste man da ein eigenständiges Skript schreiben, das die individuellen Belange je nach Veränderung berücksichtigt!

Lasse mich aber gerne eines besseren belehren!

Schönes Wochenende Euch allen, und bn auf Eure Antworten gespannt!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: und "spiele den

Eingetragen von Jenna (1883)
am 21.06.2014 - 12:35 Uhr
Zitat:

und "spiele den DB-Clone evtl mit neuen Feldern zurück"

Eigentlich genau andersrum, die Idee (zumindest wie ich das gern hätte) wäre wie folgt:
Live Version mit 8 ContentTypes ( gleich 8 Hauptbereiche wie Autos, Boote etc.) mit z.B. jeweils 200 Nodes und dementsprechend vielen Benutzerkonten und Produkte / Commerce.

Nun stehen Updates an oder ich möchte Commerce weiter entwickeln, neue Rules oder Module testen, also alles was man ungern im Live Betrieb macht.
Ich erstelle heute ein Backup für die Dev und arbeite daran 7 Tage und alles läuft.

Nun möchte ich alle neu entstandenen Nodes und User aus den letzten 7 Tagen zusätzlich auf die neue Version ziehen um nicht alles händisch im Live Betrieb nachzubauen.

Neue Nodes auf der Dev müssen ja nicht entstehen, dafür reicht ja eine generelle Testnode auf unveröffentlicht, die man immer mitnimmt sowie ein Testuser um vorhandene ID, UID nicht durcheinander zu bringen. Oder hab ich was übersehen das es so nicht umsetzbar wäre?

Grüße Jenna

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ist es nicht irrelevant, hier

Eingetragen von maen (547)
am 21.06.2014 - 12:52 Uhr

Ist es nicht irrelevant, hier von der Idee sprechend. Dann allgemeiner:

Entweder werden die nodes oder was auch immer auf der Testseite oder der Live Seite gemerged. Der Vorgang ist ja der gleiche. Meiner Meinung nach müsste die Seite kurz angehalten werden, ein dump gezogen werden, dieser dann gemerged werden auf der testseite, danach auf der live Seite eingespielt werden.

Die zentrale AUssage aber, die zu diskutieren wäre:

Kann es überhaupt ein skript geben, das alle Fälle abdeckt, und wenn ja wie? Meiner Meinung nach nicht. Gerade features ist für mich ein Modul, das zum Einsatz kommt wenn ich verschiedene Module brauche die gemeinsam einen speziellen Zweck erfüllen.

Drush kann meines Wissens nach auh keinen merge.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 20 Stunden
  • Hey danke
    vor 2 Wochen 1 Tag
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 6 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 6 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 17 Stunden
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 1 Tag

Statistik

Beiträge im Forum: 250233
Registrierte User: 20453

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 1 Benutzer und 22 Gäste online.

Benutzer online

  • wla

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association