DeRedmineUpgrade » History » Version 12

Robert Schneider, 2015-06-21 08:23

1 1 Robert Schneider
Übersetzung der "Rev. 75":http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade/75
2 1 Robert Schneider
3 1 Robert Schneider
{{>TOC}}
4 1 Robert Schneider
5 1 Robert Schneider
h1. Upgrading
6 1 Robert Schneider
7 3 Robert Schneider
Die folgende Dokumentation behandelt das Aktualisieren von Redmine auf Version 2.x oder höher. Eine "frühere Version dieser Seite auf Englisch":/projects/redmine/wiki/RedmineUpgrade?version=75 enthält das Upgrading auf Redmine 1.x.
8 1 Robert Schneider
9 1 Robert Schneider
h2. Schritt 1 - Anforderungen überprüfen
10 1 Robert Schneider
11 1 Robert Schneider
Der erste Schritt für das Upgrade ist, zu überprüfen, ob die Anforderungen der Version, die installiert werden soll, erfüllt werden.
12 1 Robert Schneider
13 1 Robert Schneider
h2. Schritt 2 - Sicherung
14 1 Robert Schneider
15 1 Robert Schneider
Es wird empfohlen, die Datenbank und die hochgeladenen Dateien zu sichern. Die meisten Upgrades laufen ohne Probleme ab, doch kann es nie schaden, eine Sicherung für den Fall der Fälle zu besitzen.
16 1 Robert Schneider
17 1 Robert Schneider
h3. Sichern der Dateien
18 1 Robert Schneider
19 1 Robert Schneider
Alle hochgeladenen Dateien (Anhänge) sind im Verzeichnis @files@ gespeichert. Zum Sichern kann das Verzeichnis einfach an eine andere Stelle kopiert werden.
20 1 Robert Schneider
21 1 Robert Schneider
h3. MySQL-Datenbanken
22 1 Robert Schneider
23 1 Robert Schneider
Die @mysqldump@-Anweisung kann zum Sichern der Datenbank in eine Textdatei verwendet werden.
24 1 Robert Schneider
25 1 Robert Schneider
<pre><code>/usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz</code></pre>
26 1 Robert Schneider
27 1 Robert Schneider
h3. SQListe-Datenbanken
28 1 Robert Schneider
29 1 Robert Schneider
SQLite-Datenbanken sind in Dateien gespeichert, weswegen sie einfach durch das Kopieren an eine andere Stelle gesichert werden können.
30 1 Robert Schneider
31 1 Robert Schneider
h3. PostgreSQL-Datenbanken
32 1 Robert Schneider
33 1 Robert Schneider
Die @pg_dump@-Anweisung kann zum Sichern der Datenbank in eine Textdatei verwendet werden.
34 1 Robert Schneider
Beispiel:
35 1 Robert Schneider
36 1 Robert Schneider
37 1 Robert Schneider
<pre><code>/usr/bin/pg_dump -U <username> -Fc --file=redmine.sqlc <redmine_database></code></pre>
38 1 Robert Schneider
39 1 Robert Schneider
h2. Schritt 3 - Das Upgrade durchführen
40 1 Robert Schneider
41 2 Robert Schneider
Nun ist es Zeit, die eigentliche Aktualisierung vorzunehmen. Dieser Vorgang fällt, je nachdem, wie Redmine herungergeladen wurde, unterschiedlich aus. Nur *eine* der beiden folgenden Optionen ist nun durchzuführen.
42 2 Robert Schneider
43 1 Robert Schneider
h3. Option 1 - Eine stabile Version herunterladen
44 1 Robert Schneider
45 3 Robert Schneider
Dieser Schritt besteht aus folgenden Teilschritten:
46 3 Robert Schneider
47 4 Robert Schneider
*1.* [[Download|Herunterladen]] des Releases, entweder als tar.gz- oder als zip-Format, mit anschließendem Entpacken des Archivs in ein neues Verzeichnis.
48 2 Robert Schneider
49 2 Robert Schneider
Damit der Anwendungsserver, der mit gewissen Benutzer- und Gruppenrechten läuft, auf die Dateien überhaupt zugreifen kann, muss sichergestellt werden, dass die frisch entpackten und kopierten Dateien entsprechende Benutzer- und Gruppenrechte aufweisen. Insbesondere ist darauf zu achten, dass bei den Verzeichnissen @files@, @log@ und @tmp@ Schreibrechte vorhanden sind.
50 2 Robert Schneider
51 4 Robert Schneider
*2.* Kopieren der bestehenden Datei @config/database.yml@ (die Datenbankeinstellungen enthällt) in das neue @config@-Verzeichnis. Falls Redmine >= 1.4 mit MySQL und Ruby 1.9 verwendet wird, so muss der Datenbankadapter in der Datei auf @mysql2@ gesetzt sein.
52 3 Robert Schneider
53 4 Robert Schneider
*3a.* Kopieren der bestehenden Datei @config/configuration.yml@ (die generelle Einstellungen enthällt) in das neue @config@-Verzeichnis. 
54 3 Robert Schneider
55 4 Robert Schneider
*3b.* Oder: falls von einer Version vor 1.2.0 aktualisiert wird, die Email-Einstellungen aus der Datei @config/email.yml@ in die neue Datei @config/configuration.yml@ kopieren, welche duch das Duplizieren und Umbenennen der Datei @config/configuration.yml.example@ erstellt werden kann.
56 3 Robert Schneider
57 4 Robert Schneider
*4.* Kopieren des Verzeichnisinhalts aus @files@ in das gleichnamige Verzeichnis in der neuen Installation (das Verzeichnis enthält alle hochgeladenen Dateien).
58 1 Robert Schneider
59 4 Robert Schneider
*5.* Kopieren der Verzeichnisse der eigenen (selbst installierten) Plugins aus dem @plugins@ Verzeichnis (oder aus @vendor/plugins@, falls von einer Version vor 1.x aktualisiert wird) in das Verzeichnis @plugins@ der neuen Installation. Hierbei sollte darauf geachtet werden, dass nur solche Plugins zu berücksichtigen sind, die nicht Teil von Redmine selbst waren.
60 1 Robert Schneider
61 4 Robert Schneider
*6.* Installieren der benötigten Gems:
62 1 Robert Schneider
63 4 Robert Schneider
  bundle install --without development test
64 4 Robert Schneider
65 4 Robert Schneider
Falls auf dem System ImageMagick nicht vorhanden ist, so sollte die Installation des Gems rmagick ausgelassen werden:
66 4 Robert Schneider
67 4 Robert Schneider
  bundle install --without development test rmagick
68 4 Robert Schneider
69 4 Robert Schneider
Es werden dabei lediglich die für die Adapter benötigten Gems installiert, die in der Konfigurationsdatei für die Datenbankverbindung angegeben sind (z.B. wenn in @config/database.yml@ der _mysql2_Adapter in Verwendung ist, so wird nur das Gem mysql2 installiert). Falls @config/database.yml@ so verändert wird, dass ein anderer Datenbankadapter verwendet werden soll, so ist 'bundle install' jedes Mal erneut aufzurufen!
70 4 Robert Schneider
71 4 Robert Schneider
Weitere zu installierende Gems, die nicht direkt von Redmine benötigt werden, können in einer eigenen Datei namens Gemfile.local im Root-Verzeichnis angegeben werden. Sie ist ggf. erst anzulegen. Sie wird dann automatisch beim Ausführen von 'bundle install' geladen und installiert die dort angegebenen Gems.
72 4 Robert Schneider
73 4 Robert Schneider
*7.* Ausführen der folgenden Anweisungen im Root-Verzeichnis der neuen Redmine-Installation:
74 4 Robert Schneider
 
75 4 Robert Schneider
Falls von einer Redmine-Version vor 2.x aktualisiert wird, zunächst diese Datei löschen, sofern sie existiert: @config/initializers/secret_token.rb@
76 4 Robert Schneider
77 4 Robert Schneider
Dann mit folgender Anweisung ein neues 'Secret' erzeugen:
78 4 Robert Schneider
79 4 Robert Schneider
  bundle exec rake generate_secret_token
80 4 Robert Schneider
81 4 Robert Schneider
Alternativ kann dieses 'Secret' auch in config/secrets.yml gespeichert werden. Informationen dazu unter http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml
82 4 Robert Schneider
83 4 Robert Schneider
*8.* Falls Themes bisher verwendet wurde, so können diese aus @public/themes@ in das bleichnamige Verzeichnis des neues Installationsverzeichnis kopiert werden. Es ist aber sinnvoll, vorher zu überprüfen, ob eine neue Version des Themes verfügbar ist.
84 4 Robert Schneider
85 4 Robert Schneider
BESONDERS WICHTIG: @config/settings.yml@ sollte NICHT mit der alten Datei überschrieben werden.
86 1 Robert Schneider
87 1 Robert Schneider
h3. Option 2 - Upgrade über ein SVN-Checkout
88 1 Robert Schneider
89 5 Robert Schneider
*1.* Im Root-Verzeichnis der bestehenden Redmine-Installation diese Anweisung ausführen:
90 5 Robert Schneider
91 5 Robert Schneider
<pre><code>svn update</code></pre>
92 5 Robert Schneider
93 5 Robert Schneider
*2.* Installieren der benötigten Gems mit folgender Anweisung:
94 5 Robert Schneider
95 5 Robert Schneider
<pre><code>bundle udpate</code></pre>
96 5 Robert Schneider
97 1 Robert Schneider
h2. Schritt 4 - Die Datenbank aktualisieren
98 1 Robert Schneider
99 6 Robert Schneider
Dieser Schritt ist jener, der die Datenbank verändern könnte. Dafür ist im Redmine-Verzeichnis folgende Migrationsanweisung ausführen:
100 6 Robert Schneider
101 6 Robert Schneider
<pre><code>bundle exec rake db:migrate RAILS_ENV=production</code></pre>
102 6 Robert Schneider
103 6 Robert Schneider
Falls Plugins installiert sind, so sollten auch ihre Datenbankmigrationsanweisungen durchgeführt werden:
104 6 Robert Schneider
105 6 Robert Schneider
<pre><code>bundle exec rake redmine:plugins:migrate RAILS_ENV=production</code></pre>
106 6 Robert Schneider
107 1 Robert Schneider
h2. Schritt 5 - Aufräumen
108 1 Robert Schneider
109 7 Robert Schneider
*1.* Leeren des Caches und Löschen bestehender Sessions:
110 7 Robert Schneider
111 7 Robert Schneider
<code><pre>bundle exec rake tmp:cache:clear tmp:sessions:clear RAILS_ENV=production</pre></code>
112 7 Robert Schneider
113 7 Robert Schneider
*2.* Neustarten des Anwendungsservers (z.B. puma, thin, passenger).
114 7 Robert Schneider
115 7 Robert Schneider
*3.* Abschließend im Browser auf _"Adminstrationn -> Rollen und Berechtigungen"_ gehen, um dort die Berechtigungenn möglicher neuer Features einzustellen.
116 7 Robert Schneider
117 1 Robert Schneider
h2. Häufige Probleme
118 1 Robert Schneider
119 9 Robert Schneider
h3. Fehler beim Management von Subversion-Projektarchiven
120 8 Robert Schneider
121 10 Robert Schneider
Da einige neue Features in der Datei reposman.rb (source:/trunk/extra/svn/reposman.rb)  hinzugefügt wurden, sollte bei Problemen mit dieser ggf. eine Gruppe angegeben werden (--group=groupnamehere). Wenn Redmine.pm (source:/trunk/extra/svn/Redmine.pm) nur kopiert wurde, so sollten die Anweisungen in diesem [[Repositories access control with apache, mod_dav_svn and mod_perl|HowTo]] durchgeführt werden. Außerdem sollte die Apache-Konfiguration angepasst werden, wenn die empfohlene Konfiguration geändert wurde.
122 1 Robert Schneider
123 1 Robert Schneider
h3. secret_token.rb neu erstellen
124 1 Robert Schneider
125 11 Robert Schneider
Vor der Version version:2.0.0 war es nötig eine Datei @session_store.rb@ im Verzeichnis @config@ anzulegen, um Cookie-basierte Sessions zu ermöglichen.
126 11 Robert Schneider
127 11 Robert Schneider
Seit Version version:2.0.0 wird diese Datei nicht mehr benötigt und sollte daher erst gar nicht existieren. Stattdessen wird mit folgender Anweisung die Datei @secret_token.rb@ generiert.
128 11 Robert Schneider
129 11 Robert Schneider
  bundle exec rake generate_secret_token
130 11 Robert Schneider
131 11 Robert Schneider
Hinweis: Der Code im Projektarchiv von Redmine selbst enthält die Datei @config/initializers/secret_token.rb@ nicht. Sie wird durch die obige rake-Anweisung erst erzeugt.
132 11 Robert Schneider
133 1 Robert Schneider
h3. Weitere Hilfen
134 12 Robert Schneider
135 12 Robert Schneider
Zum Aktualisieren von Redmine könnten auch diese Quellen weiterhelfen:
136 12 Robert Schneider
137 12 Robert Schneider
* Fehler beim Browsen in der Wiki-Historie nach einem Upgrade von Redmine-Version 1.x mit einer SQLite-Datenbank: #12501.
138 12 Robert Schneider
* "mod_fcgid for Apache2":http://httpd.apache.org/mod_fcgid/, um Rails mit Apache 2 zum Laufen zu bringen
139 12 Robert Schneider
* HowTo: [[HowTo_configure_Apache_to_run_Redmine|Apache für Redmine konfigurieren]]