<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>niebegeg.net &#187; Drush</title>
	<atom:link href="http://niebegeg.net/tags/drush/feed/" rel="self" type="application/rss+xml" />
	<link>http://niebegeg.net</link>
	<description>Mein Leben im Entwicklerland</description>
	<lastBuildDate>Thu, 03 May 2012 18:41:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Meine gesammelten Drush-Sessions</title>
		<link>http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/</link>
		<comments>http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 19:53:01 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[drupalcamp]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Session]]></category>

		<guid isPermaLink="false">http://niebegeg.net/?p=659</guid>
		<description><![CDATA[Im vergangenen Jahr habe ich zwei Sessions zu Drush gehalten: im März beim Drupal Day MV und im September beim DrupalCamp Berlin. Da ich nicht weiß, wie lange die ursprünglichen Websites noch &#8220;am Netz&#8221; sind, möchte ich auf dieser Seite alle Ressourcen zusammentragen. Drush-Session v1.0 in Deutsch Beim Drupal Day MV im März 2011 hielt [...]]]></description>
			<content:encoded><![CDATA[<p>Im vergangenen Jahr habe ich zwei Sessions zu Drush gehalten: im März beim <a href="http://ddmv11.drupal-mv.de" title="Drupal Day MV-Website">Drupal Day MV</a> und im September beim <a href="http://drupalcity.de/" title="DrupalCamp Berlin">DrupalCamp Berlin</a>.</p>

<p>Da ich nicht weiß, wie lange die ursprünglichen Websites noch &#8220;am Netz&#8221; sind, möchte ich auf dieser Seite alle Ressourcen zusammentragen.</p>

<h2>Drush-Session v1.0 in Deutsch</h2>

<p>Beim Drupal Day MV im März 2011 hielt ich den Drush-Vortrag zum ersten Mal und in Deutsch.</p>

<ul>
<li><a href="http://ddmv11.drupal-mv.de/sessions/drush-website-administration-leicht-gemacht">Vorstellung der Session auf der DrupalDay-Website</a></li>
<li><a href='/wp-content/uploads/2012/02/Drush-Website-Administration-leicht-gemacht.pdf'>Drush &#8211; Website-Administration leicht gemacht</a> als PDF</li>
<li><a href="http://www.archive.org/details/Drush-Website-administrationLeichtGemacht">Drush-Website-administrationLeichtGemacht</a>, der Video-Mitschnitt auf <a href="http://www.archive.org/">archive.org</a></li>
</ul>

<h2>Drush-Session v2.0 in Englisch</h2>

<p>Ich hatte die Session vom Drupal Day MV noch mal für das DrupalCamp in Berlin eingereicht, diesmal in Englisch.
Die Gelegenheit habe genutzt, die &#8220;Folien&#8221; nicht nur ins Englische zu übersetzen, sondern auch inhaltlich zu überarbeiten und mit meinem Wissensstand abzugleichen. Dem Englisch-Kundingen empfehle ich also dieses PDF (aber nicht das Video ;)</p>

<ul>
<li><a href="http://drupalcity.de/session/drush-managing-drupal-powerful-way">Vorstellung der Session auf der DrupalCamp-Website</a></li>
<li><a href='/wp-content/uploads/2012/02/drush_-_managing_drupal_-_the_easy_approach_v2.pdf'>Drush &#8211; managing drupal &#8211;  the easy approach</a> als PDF,</li>
<li><a href="http://vimeo.com/31519168">Drush &#8211; managing drupal &#8211;  the easy approach</a>, der Video-Mitschnitt auf <a href="http://vimeo.com/">Vimeo</a>.</li>
</ul>

<p>Damit haben ich (nahezu) alles zu Drush gesagt, für meine nächste Session werde ich mir ein neues Thema suchen. Wenngleich die <a href="http://drush.ws/examples/example.aliases.drushrc.php">site aliases</a> mit ihrer Mächtigkeit noch ein paar Blogposts verdient hätten. :)</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2011/09/21/drupalcamp-in-berlin/" title="Permanent link to DrupalCamp in Berlin">DrupalCamp in Berlin</a>  </li>
<li> <a href="http://niebegeg.net/2011/03/16/drupal-day-mv-ein-rueckblick/" title="Permanent link to Drupal Day MV &#8211; ein Rückblick">Drupal Day MV &#8211; ein Rückblick</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=659&amp;md5=5faa09a10997059776dab7f338240a26" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F02%2F05%2Fmeine-gesammelten-drush-sessions%2F&amp;language=de_DE&amp;category=text&amp;title=Meine+gesammelten+Drush-Sessions&amp;description=Im+vergangenen+Jahr+habe+ich+zwei+Sessions+zu+Drush+gehalten%3A+im+M%C3%A4rz+beim+Drupal+Day+MV+und+im+September+beim+DrupalCamp+Berlin.+Da+ich+nicht+wei%C3%9F%2C+wie+lange+die+urspr%C3%BCnglichen...&amp;tags=Community%2CDrupal%2Cdrupalcamp%2CDrush%2CSession%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Multisites mit Drupal &#8211; schön wars</title>
		<link>http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/</link>
		<comments>http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 07:51:35 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Multisite]]></category>
		<category><![CDATA[uberspace]]></category>
		<category><![CDATA[Workflow]]></category>

		<guid isPermaLink="false">http://niebegeg.net/?p=620</guid>
		<description><![CDATA[Im Drupalcenter-Podcast ging es kürzlich um Multisites. Ich habe diese Funktion früher auch für viele meiner Webhostings eingesetzt und nutze Multisites nun gar nicht mehr. Eine gute Gelegenheit für einen Einwurf. &#8220;Multisite&#8221; ist eine raffinierte Funktion, um mehrere Drupal-Websites aus einer Codebasis zu betreiben: Im Webserver werden mehrere Domainnamen auf das selbe Drupal-Installationsvverzeichnis konfiguriert. Beim [...]]]></description>
			<content:encoded><![CDATA[<p>Im <a title="#DCPod-1202 - Multisites" href="http://www.drupalcenter.de/podcast/39211">Drupalcenter-Podcast</a> ging es kürzlich um Multisites. Ich habe diese Funktion früher auch für viele meiner Webhostings eingesetzt und nutze Multisites nun gar nicht mehr. Eine gute Gelegenheit für einen Einwurf.</p>

<p>&#8220;Multisite&#8221; ist eine raffinierte Funktion, um mehrere Drupal-Websites aus einer Codebasis zu betreiben: Im Webserver werden mehrere Domainnamen auf das selbe Drupal-Installationsvverzeichnis konfiguriert. Beim Seitenaufruf ermittelt Drupal den Domainnamen zum Request, sucht im Ordner <code>sites/</code> den passenden Ordner mit den Konfigurationsdaten. Wenn es für die gesuchte Domain keinen Ordner gibt, dann wird im Ordner <code>sites/default/</code> nachgesehen. Die im Konfigurationsordner vorhandene Datei <code>settings.php</code> enthält unter anderem die nötigen Datenbank-Informationen und Drupal liefert mit den in der Datenbank abgelegten Daten schließlich die Webseite aus.  Eine detaillierte Beschreibung zu Multisites liefert <a href="http://drupal.org/documentation/install/multi-site">das Handbuch auf drupal.org</a> sowie die <a href="http://www.drupalcenter.de/podcast/39211">Linkliste am Podcastbeitrag</a>.</p>

<p>Diese Funktion war ein unverzichtbares Hilfsmittel, als Festplattenkapazität auf dem Server kostbar war und FTP die einzige administrative Zugriffsmöglichkeit auf den Server war: Bei der Installation einer neuen Website braucht man nur einen neuen Konfigurationsordner anlegen, die <code>settings.php</code>dorthin kopieren und anpassen und eine neue Datenbank befüllen. Beim Update eines Moduls kopiert man die von <a href="http://drupal.org/project/modules">drupal.org heruntergeladene Modulversion</a>  per FTP auf den Server und ruft für jede Website die Updatefunktion im Browser auf. Und genau diese Arbeitserleichterng ist das Problem mit Multisites: Nach dem Austauschen der Moduldateien muss man sofort die Datenbank-Updates auf allen Websites durchführen. Das kann natürlich einige Zeit dauern, und so lange sind unter Umständen (bis zu <code>n-1</code>) Websites dieser Multisite-Installation zerbrochen. Und man muss darauf vertrauen, dass das Modul-Update keine der Websites &#8220;zerbricht&#8221; &#8212; also gleich noch testen, was wiederum wieder viel Zeit beansprucht. Und wie geht man vor, wenn nun Eine der Multisites nach dem Update nicht mehr funktioniert? Viel Handbareit und eine erstmal zerbrochene Website bleiben zurück.</p>

<p>Seit rund 3 Jahren betreibe ich (fast) alle meine Drupal-Sites auf Webhostings, bei denen ich mich per <code>ssh</code> auf dem Server einloggen und die Websites administrieren kann. Bei den großen Anbietern bekommt man solch ein Hosting ab ~10 Euro je Monat. Alternativ dazu kann man sich für den Preis auch einen vServer klicken. Ich bin großer <a href="http://uberspace.de">uberspace-Fanboy</a>, dort bekommt man ein Webhosting mit ssh-Zugang (und sehr vielem mehr) für den Preis, <a href="http://uberspace.de/prices">den mit das Angebot wert ist</a>. Ich folge mittlerweile der Empfehlung der Betreiber und habe für jede Website einen eigenen Uberspace (also ein eigenes Benutzerkonto auf einem der Uberspace-Server), weil auch die E-Mail-Konfiguration per Uberspace erfolgt und ich so jedem Kunden problemlos Ssh-Zugang zu &#8220;seinem&#8221; Uberspace geben kann.</p>

<p>Nun fragt Ihr vielleicht, wie viel mehr Zeit ich für ein so verteiltes Hosting investieren muss? Deshalb hier noch ein paar Ausführungen dazu.
Ich bin bekanntermaßen begeistert von <a href="http://drupal.org/project/drush">drush</a>, dem Kommandozeilenwerkzeug für Drupal. Natürlich ist <code>drush</code>auf allen Uberspaces installiert. Ich pflege eine Vorlage für <code>~/.drush</code> auf meinem lokalen Rechner und die wird &#8212; zusammen mit weiteren Konfigurationsdateien &#8212;  in jeden neuen Uberspace kopiert. Aktualisierung des Setups ist auch schnell getan:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>uberspace_template   
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>uberspaces<span style="color: #7a0874; font-weight: bold;">&#41;</span>   
<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;*** <span style="color: #007800;">$i</span> ***&quot;</span>
  rsync <span style="color: #660033;">-var</span> . <span style="color: #007800;">$i</span>:
<span style="color: #000000; font-weight: bold;">done</span></pre>

<p>Das <code>$(uberspaces)</code> habe ich <a href="/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/">kürzlich beschrieben</a>.</p>

<p>Auf dem Uberspace kann ich nun mit <code>drush</code> schnell ein Backup der Website machen, Module aktualisieren und ein fälliges Update in Sekundenschnelle <a href="/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/">auf einer Kopie der produktiven Website testen</a>.</p>

<pre class="bash" style="font-family:monospace;">drush rsync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>   
drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>
drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> up views
<span style="color: #666666; font-style: italic;"># und nun Testen</span>
drush <span style="color: #000000; font-weight: bold;">@</span>live bam-backup
drush <span style="color: #000000; font-weight: bold;">@</span>live up views</pre>

<p>Details dazu und den obligatorischen Hinweis auf <a href="http://drupal.org/project/environment_indicator">environment_indicator.module</a> findet Ihr in dem <a href="/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/">frühren Blogbeitrag</a>.</p>

<p>Um herauszufinden, welche meiner Drupal-Installationen von einem nötgen Update betroffen sind, läuft dieses Sktipt von meinem lokalen Rechner aus:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>uberspaces<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;*** <span style="color: #007800;">$i</span> ***&quot;</span>
  <span style="color: #c20cb9; font-weight: bold;">ssh</span> <span style="color: #007800;">$i</span> <span style="color: #ff0000;">&quot;find /var/www/virtual/<span style="color: #007800;">$i</span> -type f -name modulname.module&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre>

<p>Um es noch einfacher zu haben, habe ich alle Dateien <code>aliases.drushrc.php</code> vom Server auf meinen lokalen Rechner kopiert und den Namen des Uberspaces als Prefix vorangestellt</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> $<span style="color: #7a0874; font-weight: bold;">&#40;</span>uberspaces<span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;*** <span style="color: #007800;">$i</span> ***&quot;</span>
  <span style="color: #c20cb9; font-weight: bold;">scp</span> <span style="color: #007800;">$i</span>:.drush<span style="color: #000000; font-weight: bold;">/</span>aliases.drushrc.php ~<span style="color: #000000; font-weight: bold;">/</span>.drush<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$i</span>.aliases.drushrc.php 
<span style="color: #000000; font-weight: bold;">done</span></pre>

<p>Dann noch die Paramater <code>remote-host</code>und  <code>remote-user</code> in den Aliases ergänzen und ich kann vom lokalen Rechner aus Drush-Kommandos auf dem Uberspace ausführen, ohne mich vorher dort anmelden zu müssen:</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span>uberspacename.live st</pre>

<p>Das vergangene halbe Jahr seit meinem Umzug zu uberspace.de mit strengen Separation aller Websites auf eigene Benutzerkonten (Accounts) hat gezeigt, dass dieser Workflow robust ist und mit drush, git, komfortablem Backup auf Systemebene und all den anderen Helferlein keinen Mehraufwand gegenüber einem eigenen Server mit allen Websites unter <code>/var/www</code> bringt. Dafür aber Zuverlässigkeit der Plattform, schnell durchgeführte Drupal-Updates und einen freigestellten Linux-Admin.</p>

<p>Nun bin ich auf Deine Meinung gespannt. Wie administrierst Du Deine Drupal-Sites? Was für Hosting-Pakete favorisierst Du wie passt Dein Provider zu Dir? Und: Nutzt Du noch Multisites und ich habe irgend ein cooles Feature aus den Augen verloren?</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/14/schnelle-ssh-aktionen-auf-allen-eigenen-uberspaces/" title="Permanent link to Schnelle ssh-Aktionen auf allen eigenen uberspaces">Schnelle ssh-Aktionen auf allen eigenen uberspaces</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=620&amp;md5=0cad720ba7dcedfeee3ef2d4f55a81bb" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2012%2F01%2F19%2Fmultisites-mit-drupal-schoen-wars%2F&amp;language=de_DE&amp;category=text&amp;title=Multisites+mit+Drupal+%26%238211%3B+sch%C3%B6n+wars&amp;description=Im+Drupalcenter-Podcast+ging+es+k%C3%BCrzlich+um+Multisites.+Ich+habe+diese+Funktion+fr%C3%BCher+auch+f%C3%BCr+viele+meiner+Webhostings+eingesetzt+und+nutze+Multisites+nun+gar+nicht+mehr.+Eine+gute+Gelegenheit+f%C3%BCr+einen...&amp;tags=Drush%2CLinux%2CMultisite%2Cuberspace%2CWorkflow%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Konfektionierte Drupal-Installation mit git</title>
		<link>http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/</link>
		<comments>http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 21:07:29 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Freistil Consulting betreibt ein allgemein nutzbares Git-Repository mit verschiedenen aktuellen Drupal-Versionen (Standard-Drupal, Pressflow sowie Cocomore), vielen oft-genutzten Modulen (den &#8220;AllStars&#8221;) und dem deutschsprachigen Installationsprofil. Aber darüber haben die Leute von undpaul schon berichtet. Mittlerweile habe auch ich meine erste Website auf der Codebasis am Start. Ein paar weitere Module habe ich per git submodule vom [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.drupalconcept.de/">Freistil Consulting</a> betreibt ein allgemein nutzbares Git-Repository mit verschiedenen aktuellen Drupal-Versionen (Standard-Drupal, Pressflow sowie Cocomore), vielen oft-genutzten Modulen (den &#8220;AllStars&#8221;) und dem deutschsprachigen Installationsprofil. Aber darüber haben die Leute von <a href="http://www.undpaul.de/blog/2010/11/27/git-repository-mit-allstar-moduleset-von-freistil-consulting">undpaul</a> schon berichtet.</p>

<p>Mittlerweile habe auch ich meine erste Website auf der Codebasis am Start. Ein paar weitere Module habe ich per <code>git submodule</code> vom Repository <a href="http://git.drupalcode.org/">git://git.drupalcode.org/</a> nach installiert.</p>

<p>Und die erste Bewährungsprobe hat das Setup schon mit Bravour bestanden: Das <a href="http://drupal.org/drupal-6.20">Drupal-Update vor einer Woche</a> und die <a href="http://drupal.org/node/999386">Views-Sicherheitsaktualisierung</a> zur gleichen Zeit waren in Bestzeit mit</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># git pull</span>
<span style="color: #666666; font-style: italic;"># drush updatedb</span></pre>

<p>aktualisiert. Das geht noch schneller als mit einem reinen Drush-Workflow. Und als Website-Betreiber hat man die Gewissheit, dass die Module in der Konfiguration zusammenpassen und das Update schmerzfrei sein kann. Ein Dank für den Service an <a href="http://www.drupalconcept.de/">Freistil Consulting</a>!</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2010/10/03/git-workshop-in-hamburg/" title="Permanent link to Git-Workshop in Hamburg">Git-Workshop in Hamburg</a>  </li>
<li> <a href="http://niebegeg.net/2010/08/27/drupalcon-code-sprint-als-zugabe/" title="Permanent link to DrupalCon &#8211; Code Sprint als Zugabe">DrupalCon &#8211; Code Sprint als Zugabe</a>  </li>
<li> <a href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a>  </li>
<li> <a href="http://niebegeg.net/2010/10/17/zwei-tage-gesprintet/" title="Permanent link to Zwei Tage gesprintet">Zwei Tage gesprintet</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=324&amp;md5=a24877df2318318167d810c4a790b793" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F12%2F23%2Fkonfektionierte-drupal-installation-mit-git%2F&amp;language=de_DE&amp;category=text&amp;title=Konfektionierte+Drupal-Installation+mit+git&amp;description=Freistil+Consulting+betreibt+ein+allgemein+nutzbares+Git-Repository+mit+verschiedenen+aktuellen+Drupal-Versionen+%28Standard-Drupal%2C+Pressflow+sowie+Cocomore%29%2C+vielen+oft-genutzten+Modulen+%28den+%26%238220%3BAllStars%26%238221%3B%29+und+dem+deutschsprachigen+Installationsprofil.+Aber+dar%C3%BCber+haben+die+Leute+von...&amp;tags=Drupal%2CDrush%2CGit%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Der schnellste Weg zur Drush-Installation</title>
		<link>http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/</link>
		<comments>http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/#comments</comments>
		<pubDate>Sun, 19 Dec 2010 20:39:03 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Mit dem Wechsel des Drupal-Projektverwaltung zu Git wird es viel einfacher, Drush zu installieren und zu aktualisieren. Ich installiere Drush üblicherweise ins Verzeichnis /usr/local/share/drush, was mit # cd /usr/local/share # git clone git://git.drupalcode.org/project/drush # ln -sf ../share/drush/drush /usr/local/bin/drush # cd drush # git tag ... 6.x-4.0-rc1 6.x-4.0-rc3 7.x-1.0-rc2 ... # git checkout 6.x-4.0-rc3 geschieht. Der [...]]]></description>
			<content:encoded><![CDATA[<p>Mit dem Wechsel des Drupal-Projektverwaltung zu Git wird es viel einfacher, Drush zu installieren und zu aktualisieren.</p>

<p>Ich installiere Drush üblicherweise ins Verzeichnis <code>/usr/local/share/drush</code>, was mit</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># cd /usr/local/share</span>
<span style="color: #666666; font-style: italic;"># git clone git://git.drupalcode.org/project/drush</span>
<span style="color: #666666; font-style: italic;"># ln -sf ../share/drush/drush /usr/local/bin/drush</span>
<span style="color: #666666; font-style: italic;"># cd drush</span>
<span style="color: #666666; font-style: italic;"># git tag</span>
...
<span style="color: #000000;">6</span>.x-<span style="color: #000000;">4.0</span>-rc1
<span style="color: #000000;">6</span>.x-<span style="color: #000000;">4.0</span>-rc3
<span style="color: #000000;">7</span>.x-<span style="color: #000000;">1.0</span>-rc2
...
<span style="color: #666666; font-style: italic;"># git checkout 6.x-4.0-rc3</span></pre>

<p>geschieht. Der Befehl <code>git tag</code> zeigt die Drush-Releases an, mit <code>git checkout 6.x-4.0-rc3</code> wird die gewünschte Release eingestellt (in einem lokalen Git-Repository sind ja alle Versionen und damit auch alle Releases des Projekts enthalten).</p>

<p>Nun kann mit <code>git pull</code> jederzeit das Repository aktualisiert und eine neuere Drush-Version eingestellt werden. Und sollte es mit dem Releasekandidat (rc) Probleme geben, dann schaltet man einfach mit <code>git checkout 6.x-3.3</code> die aktuelle stabile Version aus.</p>

<p>Geht es einfacher? ;-)</p>

<p><em>Update:</em> Bei dem hier beschriebenen Setup gehe ich davon aus, dass der Rechner (ein Server?) von mehreren Benutzern genutzt wird. Deshalb die Installation unter <code>/usr/local</code>. Nutzt nur ein Benutzer auf dem Rechner drush, dann kann das der Benutzer gern in seinem Heimatverzeichnis installieren.</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/" title="Permanent link to Konfektionierte Drupal-Installation mit git">Konfektionierte Drupal-Installation mit git</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2010/08/27/drupalcon-code-sprint-als-zugabe/" title="Permanent link to DrupalCon &#8211; Code Sprint als Zugabe">DrupalCon &#8211; Code Sprint als Zugabe</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2008/04/03/eine-neue-moeglichkeit-zum-finden-von-drupal-code/" title="Permanent link to Eine neue Möglichkeit zum Finden von Drupal-Code">Eine neue Möglichkeit zum Finden von Drupal-Code</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=323&amp;md5=33b867b878432e831fa5e56aae199045" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F12%2F19%2Fder-schnellste-weg-zur-drush-installation%2F&amp;language=de_DE&amp;category=text&amp;title=Der+schnellste+Weg+zur+Drush-Installation&amp;description=Mit+dem+Wechsel+des+Drupal-Projektverwaltung+zu+Git+wird+es+viel+einfacher%2C+Drush+zu+installieren+und+zu+aktualisieren.+Ich+installiere+Drush+%C3%BCblicherweise+ins+Verzeichnis+%2Fusr%2Flocal%2Fshare%2Fdrush%2C+was+mit+%23+cd+%2Fusr%2Flocal%2Fshare+%23...&amp;tags=Administration%2CDrupal%2CDrush%2CGit%2Cunix%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Aktive Drupal-Website auf den PC spiegeln</title>
		<link>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/</link>
		<comments>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 20:03:06 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>
		<category><![CDATA[Website development]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=375</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. In Drupal lässt sich ja mit drush site-aliases und den drush-Kommandos rsync und sql-sync elegant ein Setup mit Staging-Site und Live-Site auf einem Server umsetzen, wie kürzlich hier beschrieben. Ziel war dabei, schnell eine Kopie einer Drupal-Website zu erstellen, um daran z.B. Modul-Updates zu testen oder neue Konfigurationen, [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog/">PartMaster-Blog</a>.</em></p>

<p>In Drupal lässt sich ja mit <a href="http://drush.ws/#site-alias">drush site-aliases</a> und den drush-Kommandos <a href="http://drush.ws/#rsync">rsync</a> und <a href="http://drush.ws/#sql-sync">sql-sync</a> elegant ein Setup mit Staging-Site und Live-Site auf einem Server umsetzen, wie <a href="/blog/drush-site-alias-ein-sicherheitsnetz-fuer-die-drupal-website-entwicklung">kürzlich hier beschrieben</a>. Ziel war dabei, schnell eine Kopie einer Drupal-Website zu erstellen, um daran z.B. Modul-Updates zu testen oder neue Konfigurationen, Module und Themes auszuprobieren.</p>

<p>Das Prinzip lässt sich nun leicht auf den eigenen Rechner ausdehnen. Ich habe z.B. viele meiner aktiv zu entwickelnden Website-Projekte auf meinem Notebook dabei und kann unabhängig von Internet-Verbindung und ssh-Latenz daran weiter arbeiten.</p>

<p><a href="http://mearra.com/blogs/vesa-palmu">Vesa Palmu</a> hat sehr gut und umfassend beschrieben, wie man sich unter Mac OS eine <a href="http://mearra.com/blogs/vesa-palmu/how-setup-mac-os-x-106-drupal-environment">Drupal-Entwicklungsumgebung einrichtet</a>. Er nutzt die nativen Werkzeuge des OS, eine Alternative ist MAMP. Linux-Benutzer haben auch meist alle Dienste installiert und müssen evtl. lediglich MySQL nach installieren. Windows-Anwender sollten wohl auch XAMPP setzen, um damit zum Erfolg zu kommen.
Acquia bietet für alle genannten Betriebssysteme den <a href="http://acquia.com/documentation/acquia-drupal-stack/">Acquia Drupal Stack-Installer</a>, der sicher auch eine sehr gute Wahl ist. Ich mag es nativ und habe den erstgenannten Weg gewählt.<br />
<em>Anmerkung</em>: Drush soll auch <a href="http://drupal.org/node/594744">unter Windows lauffähig sein</a>. Ich habe das nicht getestet.</p>

<p>Nun legt man im Heimatordner den Ordner <code>.drush</code> an und installiert dort drush. Vorzugsweise via Git, weil damit die Aktualisierung der Drush-Installation am einfachsten ist.</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>.drush
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>git.drupalcode.org<span style="color: #000000; font-weight: bold;">/</span>project<span style="color: #000000; font-weight: bold;">/</span>drush.git
<span style="color: #7a0874; font-weight: bold;">cd</span> drush
<span style="color: #c20cb9; font-weight: bold;">git</span> checkout <span style="color: #000000;">6</span>.x-<span style="color: #000000;">4.0</span>-rc3</pre>

<p>Der letzte Befehl aktiviert die derzeit neueste drush-Version. Alle verfügbaren Versionen in einem Projekt werden getaggt und können so leicht ermittelt werden:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> tag</pre>

<p>Nun noch die Datei <code>aliases.drushrc.php</code> vom im Ordner <code>~/.drush</code> anlegen (oder vom Server kopieren). Dort werden die beiden Drupal-Installationen auf dem Server eingetragen, in den  Feldern <code>remote-host</code> und <code>remote-user</code> die ssh-Zugangsdaten zum Server ergänzen und einen  Eintrag für die lokale Installation auf dem Notebook hinzugefügt.</p>

<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-host'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'www.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-user'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ich'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'live'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-host'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'www.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'remote-user'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'ich'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dev'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'l.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/Users/drue/Sites/test.beispiel.de'</span><span style="color: #339933;">,</span>
  <span style="color: #0000ff;">'db-url'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'mysql://web1:MySecret@localhost/usr_web1_3'</span><span style="color: #339933;">,</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre>

<p>Ich definiere für jede meiner lokalen Projekt-Websites als Domainname den ursprünglichen Domainname mit einem vorangestellten &#8220;l.&#8221;. Der Domainname, hier <code>l.beispiel.de</code> wird in <code>/etc/hosts</code> (bei Mac OS und Linux, Windows-User müssen die Datei <code>hosts</code> irgendwo unter <code>c:\windows</code> suchen) eingetragen.<br />
Der Datenbank auf dem lokalen Rechner gebe ich üblicherweise den selben Namen und das selbe Passwort wie auf dem Originalsystem. Da es auf dem lokalen Rechner noch keine Drupal-Installation und damit keine Datei <code>settings.php</code> gibt, muss die Datenbank-URL hier angegeben werden und wird dann in die Datei <code>settings.php</code> übernommen. Die Datenbank muss im MySQL-Server angelegt werden und die Zugriffsberechtigungen korrekt eingestellt werden.</p>

<p>Nun muss dem Apache noch gesagt werden, was er bei Aufrufen der Domain <code>l.beispiel.de</code> ausliefern soll (hier als Minimalversion).</p>

<pre class="ini" style="font-family:monospace;">&lt;VirtualHost *:<span style="">80</span>&gt;
  ServerAdmin dirk@rueweb.de
  DocumentRoot /Users/drue/Sites/l.beispiel.de
  ServerName l.beispiel.de
&lt;/VirtualHost&gt;</pre>

<p>Nun kann der Transfer der Drupal-Site starten:</p>

<pre class="bash" style="font-family:monospace;">drush rsync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span>dev
drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span>dev</pre>

<p>Fertig. Nun kann man immer an einer Website arbeiten, ohne immer Verbindung zur Server haben zu müssen.</p>

<p>Achja, nochwas: Wenn das Server-OS nicht gleich lokalen OS ist, bei mir Linux und Mac OS, dann kann es zu einem <a href="http://drupal.org/node/994702">Problem beim <code>sql-sync</code> kommen</a>, da die Pfade zum Ordner für temporäre Dateien kommen, bei Linux <code>/tmp</code> und bei Mac OS <code>/private/tmp</code>.</p>

<pre class="bash" style="font-family:monospace;">mysqldump: Can<span style="color: #ff0000;">'t create/write to file '</span><span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>beispiel.de_usr_web1_3.sql.TjyIrx<span style="color: #ff0000;">' (Errcode: 2)</span></pre>

<p>Ich habe das nur so lösen können, indem ich auf dem Server das Verzeichnis angelegt habe, welches auf dem Client für temporäre Dateien genutzt wird.</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp
<span style="color: #c20cb9; font-weight: bold;">chmod</span> 0777 <span style="color: #000000; font-weight: bold;">/</span>private<span style="color: #000000; font-weight: bold;">/</span>tmp</pre>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/" title="Permanent link to Meine gesammelten Drush-Sessions">Meine gesammelten Drush-Sessions</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=375&amp;md5=bfaad92ffbd1993dac782f72024a953a" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F12%2F12%2Faktive-drupal-website-auf-den-pc-spiegeln%2F&amp;language=de_DE&amp;category=text&amp;title=Aktive+Drupal-Website+auf+den+PC+spiegeln&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+In+Drupal+l%C3%A4sst+sich+ja+mit+drush+site-aliases+und+den+drush-Kommandos+rsync+und+sql-sync+elegant+ein+Setup+mit+Staging-Site+und+Live-Site+auf+einem...&amp;tags=Drupal%2CDrush%2CModul%2CWebsite+development%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</title>
		<link>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/</link>
		<comments>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 22:42:08 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=381</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Drush ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch &#8220;Server voller Drupal-Sites&#8221; entspannt verwalten. Bei den Lullabots  ist eine sehr gute Beschreibung zu site-aliases zu finden. Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog/">PartMaster-Blog</a>.</em></p>

<p><a href="http://drupal.org/project/drush">Drush</a> ist erste Wahl bei der Administration einer Drupal-Website. Und seit Drush auch Site-Aliases kennt, kann man auch &#8220;Server voller Drupal-Sites&#8221; entspannt verwalten. Bei den Lullabots  ist eine <a href="http://www.lullabot.com/articles/new-features-drush-3">sehr gute Beschreibung zu site-aliases</a> zu finden.</p>

<p>Nun lassen sich diese Site-Aliases nutzen, um zu einer vorhandenen Website eine Testversion anzulegen. Das Ziel ist dabei, eine Kopie einer Website anzulegen, an der man neue Module ausprobieren, Themes überarbeiten oder Konfigurationen
testweise ändern kann (und ich könnte hier noch viele andere Gründe nennen&#8230;).</p>

<p>Anmerkung: Bei dieser Beschreibung nehme ich an, dass die Live-Website unter der Domain &#8220;beispiel.de&#8221; erreichbar ist und die Staging-Website unter &#8220;test.beispiel.de&#8221; aufrufbar sein soll.   
Für dieses Setup nutze ich nicht Drupals Multisite-Funktion, sondern zwei getrennte Verzeichnisse. So kann man auf der Staging-Site leicht Module aktualisieren oder austauschen, ohne die Funktion der Live-Site zu gefährden.</p>

<p>Die Einrichtung dieses Setups ist recht einfach. 
Zuerst erstellt man die Datei <code>$HOME/.drush/aliases.drushrc.php</code> und beschreibt dort
die beiden Websites.</p>

<pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>   
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'test'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>   
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'test.beispiel.de'</span><span style="color: #339933;">,</span>   
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/test.beispiel.de'</span><span style="color: #339933;">,</span>   
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
<span style="color: #000088;">$aliases</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'live'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span>   
  <span style="color: #0000ff;">'uri'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'beispiel.de'</span><span style="color: #339933;">,</span>   
  <span style="color: #0000ff;">'root'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'/var/www/beispiel.de'</span><span style="color: #339933;">,</span>   
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre>

<p>Die Schlüsselwerte des Arrays <code>$aliases</code> sind die Site-Aliases, in unserem Fall
&#8220;live&#8221; und &#8220;test&#8221;. Diese werden mit vorangestelltem <code>@</code> als Drush-Argumente
angewendet.</p>

<p>Nun legt man eine weitere Datenbank in MySQL (oder PostgreSQL) an, kopiert mit
Drush den Ordner mit der Live-Installation in ein anderes Verzeichnis und passt
in der Datei <code>settings.php</code> die <code>$db_url</code> an.</p>

<pre class="bash" style="font-family:monospace;">drush rsync <span style="color: #660033;">--include-conf</span> <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>   
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>test.beispiel.de<span style="color: #000000; font-weight: bold;">/</span>   
<span style="color: #c20cb9; font-weight: bold;">vim</span> sites<span style="color: #000000; font-weight: bold;">/</span>beispiel.de<span style="color: #000000; font-weight: bold;">/</span>settings.php</pre>

<p>Als Nächstes muss die Datenbank aus der Live-Site noch mittels Drush in die
Datenbank der Test-Site kopiert werden.</p>

<pre class="bash" style="font-family:monospace;">drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span></pre>

<p>Jetzt muss man noch dafür sorgen, dass die Test-Website von draußen erreichbar
ist und dafür <a href="http://httpd.apache.org/docs/2.0/vhosts/examples.html">den Webserver
anpassen</a>, und ggf. auch
den Nameserver.</p>

<p>Nun kann die Test-Website aufgerufen und bearbeitet werden. Um nicht die
Übersicht zu verlieren, bietet sich das
<a href="http://drupal.org/project/environment_indicator">environment_indicator.module</a>
an. Mit dessen Hilfe wird auf der Website eine unaufdringliche Kennzeichnung der
Live- und Test-Website an.</p>

<p>Das sieht für die Test-Site so:</p>

<pre class="ini" style="font-family:monospace;">$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_text'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'TEST SITE'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_color'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'dark-red'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_enabled'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> TRUE</span><span style="color: #666666; font-style: italic;">;</span></pre>

<p>und für die Live-Site so:</p>

<pre class="ini" style="font-family:monospace;">$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_text'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'LIVE SITE'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_color'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 'green'</span><span style="color: #666666; font-style: italic;">;   </span>
$conf<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>'environment_indicator_enabled'<span style="">&#93;</span></span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> TRUE</span><span style="color: #666666; font-style: italic;">;</span></pre>

<p>aus.</p>

<p>Sollen nun neue Module, Themes oder Konfigurationsänderungen an der Test-Site
ausprobiert werden, so kopiert man &#8220;mal eben&#8221; die Datenbank und das Verzeichnis
der Live-Site in die Test-Site und kann loslegen.</p>

<pre class="bash" style="font-family:monospace;">drush sql-sync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span>   
drush rsync <span style="color: #000000; font-weight: bold;">@</span>live <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span></pre>

<p>Drush kopiert dabei alle Dateien, schließt jedoch die <code>settings.php</code> aus, so
dass die Datenbank-Zuordnung der Test-Site erhalten bleibt. Das Verhalten von
<code>drush rsync</code> kann umfangreich angepasst werden, Details dazu bietet die
<a href="http://drush.ws/#rsync">umfangreiche Drush-Hilfe</a>.</p>

<p>Unbedenklich ist das Kopieren der Live-Site in die Test-Site. In der umgekehrten
Richtung muss man  vorsichtig sein, es werden ja alle Dateien im Verzeichnis und
die Datenbank überschrieben. Im einfachsten Fall verliert man die Watchdog-,
Session-  und Statistikdaten seit dem letzten Kopieren der Live- in die
Test-Site. Sollten jedoch zwischenzeitlich auch Inhalte auf der Live-Site
erstellt oder aktualisiet worden sein, oder wurden Kommentare eingegeben, dann
gehen diese beim Kopieren der Test-Site auf die Live-Site verloren.    Möglich
wäre es, diese Inhaltsdaten vor dem Kopieren mit <a href="/blog/mal-eben-ein-drupal-backup">Backup_migrate und einem
angepassten Backup-Profil sichern</a> und nach
dem Kopieren wieder in die Datenbank zu importieren. Aber dass setzt
detaillierte Kenntnisse der Drupal-Tabellenstruktur voraus &#8211; man ganz genau
wissen, welche Datenbanktabellen gesichert und wieder hergestellt werden müssen.
Ich habe das so noch nicht angewendet, bleibt also Raum für zukünftige Tests.</p>

<p><strong>Update:</strong> Nach dem Kopieren der Seite müssen evtl. noch Konfigurationswerte angepasst werden. So speichert z.B. das Modul <a href="http://drupal.org/project/securepages">Secure Pages</a> die Basis-URL für die http- und https-Version.</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span>live vget securepages_basepath   
securepages_basepath: <span style="color: #ff0000;">&quot;http://beispiel.de&quot;</span>   
securepages_basepath_ssl: <span style="color: #ff0000;">&quot;https://beispiel.de&quot;</span></pre>

<p>Auch das Modul <a href="http://drupal.org/project/mobile_tools">Mobile Tools</a> speichert URLs für Mobil- und Desktop-Version einer Website als Variablen. Solche Variablen müssen für die Test-Website angepasst werden.</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vset securepages_basepath http:<span style="color: #000000; font-weight: bold;">//</span>test.beispiel.de   
drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vset securepages_basepath_ssl https:<span style="color: #000000; font-weight: bold;">//</span>test.beispiel.de</pre>

<p>Einen Schnelltest bietet:</p>

<pre class="bash" style="font-family:monospace;">drush <span style="color: #000000; font-weight: bold;">@</span><span style="color: #7a0874; font-weight: bold;">test</span> vget <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> beispiel.de</pre>

<p>Man sollte sich jedoch nicht ausschließlich auf diesen Schnelltest verlassen.</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2012/02/05/meine-gesammelten-drush-sessions/" title="Permanent link to Meine gesammelten Drush-Sessions">Meine gesammelten Drush-Sessions</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=381&amp;md5=9ead57c9cd82119e21d1ed901f67e154" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F11%2F24%2Fdrush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung%2F&amp;language=de_DE&amp;category=text&amp;title=Drush+site-alias+%26%238211%3B+ein+Sicherheitsnetz+f%C3%BCr+die+Drupal-Website-Entwicklung&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+Drush+ist+erste+Wahl+bei+der+Administration+einer+Drupal-Website.+Und+seit+Drush+auch+Site-Aliases+kennt%2C+kann+man+auch+%26%238220%3BServer+voller+Drupal-Sites%26%238221%3B+entspannt+verwalten....&amp;tags=Backup%2CDrupal%2CDrush%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>Mal eben ein Drupal-Backup!</title>
		<link>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/</link>
		<comments>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 21:37:29 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Intranet]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false">http://wp.niebegeg.net/?p=372</guid>
		<description><![CDATA[Anmerkung: Dieser Post erschien ursprünglich im PartMaster-Blog. Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem Admin-Modul und den Themes Tao und Rubik ist da vor allem das Backup and Migrate-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die [...]]]></description>
			<content:encoded><![CDATA[<p><em>Anmerkung: Dieser Post erschien ursprünglich im <a href="http://www.partmaster.de/blog">PartMaster-Blog</a>.</em></p>

<p>Beim Entwickeln einer Drupal-Website gehören bei mir ein paar Module immer auf die Liste der unbedingt zu installierenden Verwaltungsmodule. Neben dem <a href="http://drupal.org/project/admin">Admin</a>-Modul und den Themes <a href="http://drupal.org/project/tao">Tao</a> und 
<a href="http://drupal.org/project/rubik">Rubik</a> ist da vor allem das <a href="http://drupal.org/project/backup_migrate">Backup and Migrate</a>-Modul zu nennen. Ich installiere es auf nahezu allen Drupal-Websites, egal ob die Installation in einem shared Webhosting erfolgt oder auf meinen eigenen Servern.</p>

<p>Zur Funktion des Moduls: <em>Backup and Migrate</em> erstellt manuell oder zeitgesteuert einen Abzug (Dump) der Drupal-Datenbank in eine Datei. Man kann einzelne Datenbanktabellen komplett vom Backup ausgeklammern oder nur deren Struktur sichern. Diese Datei kann beim Backup gleich noch komprimiert werden. Ein solcher Datenbank-Dump wird bei Bedarf per Mausklick wieder in die Datenbank importiert und ersetzt dabei den vorhandenen Datenbankinhalt. Man kann mehrere Profile anlegen und so bei Bedarf verschiedene Sets von Datenbanktabellen sichern, z.B. bei manuellen Backups keine Watchdog-, Session- und Cache-Tabellen, wohl aber bei der täglichen Sicherung.<br />
Das Modul bringt vorbildliche drush-Integration mit, so dass ein Backup oder Restore mal schnell von der Kommandozeile erledigt werden kann.</p>

<p>Mein aktueller Fall: Gerade übertrage ich unser Intranet-Portal von einer seit Jahren produktiven Eigenbau-Drupal-Instanz in eine <a href="http://openatrium.com">OpenAtrium</a>-Installation. Auf der bisherigen Site haben sich eine Vielzahl selbstgebauter Inhaltstypen, Ansichten und jede Menge Beiträge (Nodes) angesammelt, die möglichst auf das in OpenAtrium vorgegebene Repertoire an Inhaltstypen (Buchseiten, Blogpost, Projekte und Aufgaben) abgebildet und in die jeweils passende Gruppe einsortiert werden sollen. Details zu der Migration werde ich später beschreiben, aber es sind verschiedene Strategien am Start und es hat viel mit Probieren und Testen zu tun.</p>

<p>Bei dieser Aufgabe unterstützt mich <em>Backup and Migrate</em> bestens, in dem ich nach jeder erfolgreichen Übertragung von Inhalten oder Konfigurations&#8221;orgien&#8221; ein manuelles Backup erstelle, ähnlich einem Wiederherstellungspunkt bei Windows, oder, um ein besseres Beispiel zu finden: einem git-commit ;)<br />
Schlägt beim nächsten Arbeitsgang ein Node-Import fehl oder haben die importierten Inhalte noch nicht die erwartete Güte, dann wird das letzte Backup mit einem Klick wieder eingespielt, und ein die Importstrategie kann verbessert nochmals angewendet werden.</p>

<p><em>Backup and Migrate</em> bietet auch die Möglichkeit, zeitgesteuert und automatisch beim Cron-Lauf eine Datenbanksicherung durchzuführen. Üblicherweise stelle ich als Zeitplan eine Datensicherung alle 24 Stunden ein und erhalte mir die drei letzten Backups. So kann man leicht auf aus Drupal heraus auf einen früheren Stand zurückgreifen, ohne die Datenbankdatei aus dem Serverbackup wieder herstellen zu müssen.</p>

<p>Es ist natürlich auch möglich, mal schnell Veränderungen an der Drupal-Site mittels Vergleich von zwei Datenbank-Dumps herauszufinden:</p>

<pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> files<span style="color: #000000; font-weight: bold;">/</span>backup_migrate
<span style="color: #c20cb9; font-weight: bold;">vim</span> <span style="color: #660033;">-d</span> scheduled<span style="color: #000000; font-weight: bold;">/</span>bak-<span style="color: #000000;">2010</span>-<span style="color: #000000;">11</span>-12T00-<span style="color: #000000;">21</span>-<span style="color: #000000;">25</span>.mysql \\   
      manual<span style="color: #000000; font-weight: bold;">/</span>bak-<span style="color: #000000;">2010</span>-<span style="color: #000000;">11</span>-12T21-<span style="color: #000000;">22</span>-<span style="color: #000000;">41</span>.mysql</pre>

<p>Das Modul ersetzt jedoch keine Datensicherung auf Serverebene, sondern bildet eine sinnvolle Ergänzung dazu. Auch werden mit dem Modul keine Dateien gesichert, der Schnappschuss ist also nicht vollständig. Mit <a href="http://git-scm.com">Git</a> hat man jedoch einen guten Helfer für gleichzeitige Snapshots des Dateisystems.</p>

<p>So hat mir <em>Backup and Migrate</em> schon manche Stunde Arbeitszeit gespart.</p>

<p>Und noch eine Anmerkung: Bei größeren Projekten und komplexeren Setups mit Development-, Staging- und Live Sites ist man mit <a href="http://git-scm.com">Git</a>, <a href="http://drupal.org/project/drush_make">Drush make</a> und <a href="http://drupal.org/project/features">Features</a> natürlich besser aufgestellt. Aber auch das ist eine andere Geschichte, die ich für später aufhebe. ;)</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/" title="Permanent link to backup_migrate + drush = happy days :)">backup_migrate + drush = happy days :)</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/12/aktive-drupal-website-auf-den-pc-spiegeln/" title="Permanent link to Aktive Drupal-Website auf den PC spiegeln">Aktive Drupal-Website auf den PC spiegeln</a>  </li>
<li> <a href="http://niebegeg.net/2012/01/19/multisites-mit-drupal-schoen-wars/" title="Permanent link to Multisites mit Drupal &#8211; schön wars">Multisites mit Drupal &#8211; schön wars</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=372&amp;md5=c49218bf3c64325b44d438a5d94e236d" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F11%2F13%2Fmal-eben-ein-drupal-backup%2F&amp;language=de_DE&amp;category=text&amp;title=Mal+eben+ein+Drupal-Backup%21&amp;description=Anmerkung%3A+Dieser+Post+erschien+urspr%C3%BCnglich+im+PartMaster-Blog.+Beim+Entwickeln+einer+Drupal-Website+geh%C3%B6ren+bei+mir+ein+paar+Module+immer+auf+die+Liste+der+unbedingt+zu+installierenden+Verwaltungsmodule.+Neben+dem+Admin-Modul+und...&amp;tags=Backup%2CDrupal%2CDrush%2CIntranet%2CModul%2Cblog" type="text/html" />
	</item>
		<item>
		<title>DrupalCon &#8211; Code Sprint als Zugabe</title>
		<link>http://niebegeg.net/2010/08/27/drupalcon-code-sprint-als-zugabe/</link>
		<comments>http://niebegeg.net/2010/08/27/drupalcon-code-sprint-als-zugabe/#comments</comments>
		<pubDate>Wed, 30 Nov -0001 00:00:00 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Code sprint]]></category>
		<category><![CDATA[Drupalcon]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Kopenhagen]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Endspurt i Kopenhagen. Im Gegensatz zu den Staatschefs im Dezember 2009 haben wir Drupaler heute die Gelegenheit genutzt Gutes zu tun und die Weiterentwicklung von Drupal an allen fronten voran zu treiben: Code sprint! Der Saal ist noch mal so richtig voll geworden. Man konnte Hand an den Code, die Dokumentation, die Übersetzungen legen oder [...]]]></description>
			<content:encoded><![CDATA[<p>Endspurt i Kopenhagen. Im Gegensatz zu den <a href="http://en.wikipedia.org/wiki/2009_United_Nations_Climate_Change_Conference">Staatschefs im Dezember 2009</a> haben wir Drupaler heute die Gelegenheit genutzt Gutes zu tun und die Weiterentwicklung von Drupal an allen fronten voran zu treiben: Code sprint! Der Saal ist noch mal so richtig voll geworden. Man konnte Hand an den Code, die Dokumentation, die Übersetzungen legen oder z.B. den Migrationspfad von Drupal 6 zu Drupal 7 zu testen. Das habe ich dann in Angriff genommen.</p>

<p>Dank drush war ziemlich schnell eine meiner Websites geklont und dann habe ich versucht, mit &#8220;drush site-upgrade&#8221; diese Website auf Drupal 7 zu aktualisieren. Randbedingung: Die Site darf keine CCK-Module enthalten, da die Migration von CCK zu D7-Fields nicht vom Drupal-Core verantwortet wird und CCK meines Wissens noch keinen Migrationspfad anbietet.</p>

<p>Beim Upgrade lädt drush die verfügbaren D7-Versionen alle Module herunter bzw. meldet, welche Module nicht aktualisiert werden können. Zum Schluss bin ich jedoch auf zwei Fehler beim Initialisieren der D7-Installation und beim Klonen der Datenbank gestoßen. 3 Issues gemeldet, einen Patch abgeliefert, Schluss für heute.</p>

<p>Nun geht es ab zum Bus, der soll diesmal nicht ohne mich fahren. Es war eine tolle (Fast)Woche. Jede menge Inspiration für die nächste zeit. Und Vorfreude auf den nächsten <a href="http://sprint.undpaul.de/">Code sprint</a> (wo ich mich um die Übersetzung und SimpleTests kümmern will &#8211; hoffentlich hat Drupal dann schon ein Git-Repo).</p>

<p>Tschüß Kopenhagen, war schön!</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2008/12/09/drupaler-bringt-euch-ein-fields-in-drupal-core-code-sprint/" title="Permanent link to Drupaler bringt Euch ein: &#8220;Fields in Drupal core code Sprint&#8221;">Drupaler bringt Euch ein: &#8220;Fields in Drupal core code Sprint&#8221;</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/" title="Permanent link to Konfektionierte Drupal-Installation mit git">Konfektionierte Drupal-Installation mit git</a>  </li>
<li> <a href="http://niebegeg.net/2010/10/17/zwei-tage-gesprintet/" title="Permanent link to Zwei Tage gesprintet">Zwei Tage gesprintet</a>  </li>
<li> <a href="http://niebegeg.net/2010/08/27/drupalcon-der-dritte-tag/" title="Permanent link to DrupalCon &#8211; der dritte Tag">DrupalCon &#8211; der dritte Tag</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=306&amp;md5=a4203ae8a9c2544f6f2717c0904c46af" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/08/27/drupalcon-code-sprint-als-zugabe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F08%2F27%2Fdrupalcon-code-sprint-als-zugabe%2F&amp;language=de_DE&amp;category=text&amp;title=DrupalCon+%26%238211%3B+Code+Sprint+als+Zugabe&amp;description=Endspurt+i+Kopenhagen.+Im+Gegensatz+zu+den+Staatschefs+im+Dezember+2009+haben+wir+Drupaler+heute+die+Gelegenheit+genutzt+Gutes+zu+tun+und+die+Weiterentwicklung+von+Drupal+an+allen+fronten+voran...&amp;tags=Code+sprint%2CDrupal%2CDrupalcon%2CDrush%2CKopenhagen%2Cblog" type="text/html" />
	</item>
		<item>
		<title>backup_migrate + drush = happy days :)</title>
		<link>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/</link>
		<comments>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 15:06:20 +0000</pubDate>
		<dc:creator>Dirk Rüdiger</dc:creator>
				<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Drush]]></category>
		<category><![CDATA[Modul]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Das backup_migrate.module gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle. Was mir noch fehlte, war die Einbindung in drush, um “mal eben” einen DB-Schnappschuss erstellen zu können. So hatte ich mir für [...]]]></description>
			<content:encoded><![CDATA[<p>Das <a href="http://drupal.org/project/backup_migrate">backup_migrate.module</a> gehört bei allen von mir administrierten Websites zu den Modulen, die gleich nach der Drupal-Installation installiert und aktiviert werden, selbst wenn ich tägliche Backups der MySQL-DB und des gesamten Rechners erstelle.</p>

<p>Was mir noch fehlte, war die Einbindung in <a href="http://drupal.org/project/drush">drush</a>, um “mal eben” einen DB-Schnappschuss erstellen zu können. So hatte ich mir für die erste Januarwoche vorgenommen, ein kleines Modul zu bauen, welches genau dies implementiert. Und siehe da: Die <a href="http://drupal.org/node/652370">2.x-Linie</a> des Moduls bringt die Funktionalität schon mit!</p>

<pre class="bash" style="font-family:monospace;">bam backup           <span style="color: #666666; font-style: italic;"># Backup the site's database with Backup and Migrate.</span>
bam restore          <span style="color: #666666; font-style: italic;"># Restore the site's database with Backup and Migrate.</span>
bam destinations     <span style="color: #666666; font-style: italic;"># Get a list of available destinations.</span>
bam sources          <span style="color: #666666; font-style: italic;"># Get a list of available sources.</span>
bam profiles         <span style="color: #666666; font-style: italic;"># Get a list of available settings profiles.</span>
bam backups          <span style="color: #666666; font-style: italic;"># Get a list of previously created backup files.</span></pre>

<p>Ein kurzes</p>

<pre class="bash" style="font-family:monospace;">drush dl backup_migrate
drush <span style="color: #c20cb9; font-weight: bold;">updatedb</span></pre>

<p>erledigte das Update von der bisherigen Version 1.2 auf 2.2. Danke <a href="http://drupal.org/user/72815">Ronan</a>!</p>
<div class="betterrelated"><p><strong>Ähnliche Beiträge:</strong></p>
<ol><li> <a href="http://niebegeg.net/2010/11/13/mal-eben-ein-drupal-backup/" title="Permanent link to Mal eben ein Drupal-Backup!">Mal eben ein Drupal-Backup!</a>  </li>
<li> <a href="http://niebegeg.net/2009/07/09/drupal-fuer-admins-drush/" title="Permanent link to Drupal für Admins: Drush">Drupal für Admins: Drush</a>  </li>
<li> <a href="http://niebegeg.net/2010/11/24/drush-site-alias-ein-sicherheitsnetz-fur-die-drupal-website-entwicklung/" title="Permanent link to Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung">Drush site-alias &#8211; ein Sicherheitsnetz für die Drupal-Website-Entwicklung</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/19/der-schnellste-weg-zur-drush-installation/" title="Permanent link to Der schnellste Weg zur Drush-Installation">Der schnellste Weg zur Drush-Installation</a>  </li>
<li> <a href="http://niebegeg.net/2010/12/23/konfektionierte-drupal-installation-mit-git/" title="Permanent link to Konfektionierte Drupal-Installation mit git">Konfektionierte Drupal-Installation mit git</a>  </li>
</ol></div> <p><a href="https://niebegeg.net/?flattrss_redirect&amp;id=268&amp;md5=15324f796c5d978bdc5e93074e523f44" title="Flattr" target="_blank"><img src="http://niebegeg.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://niebegeg.net/2010/01/08/backup_migrate-drush-happy-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" href="https://flattr.com/submit/auto?user_id=dirkr&amp;popout=1&amp;url=http%3A%2F%2Fniebegeg.net%2F2010%2F01%2F08%2Fbackup_migrate-drush-happy-days%2F&amp;language=de_DE&amp;category=text&amp;title=backup_migrate+%2B+drush+%3D+happy+days+%3A%29&amp;description=Das+backup_migrate.module+geh%C3%B6rt+bei+allen+von+mir+administrierten+Websites+zu+den+Modulen%2C+die+gleich+nach+der+Drupal-Installation+installiert+und+aktiviert+werden%2C+selbst+wenn+ich+t%C3%A4gliche+Backups+der+MySQL-DB+und+des...&amp;tags=Backup%2CDrupal%2CDrush%2CModul%2Cblog" type="text/html" />
	</item>
	</channel>
</rss>

