WebshopApi: trigram indices und Hinweiss darauf in der UPGRADE Datei.
[kivitendo-erp.git] / doc / UPGRADE
1 Wichtige Hinweise zum Upgrade von älteren Versionen
2 ===================================================
3
4
5 ** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
6
7 Upgrade auf v3.5.1
8
9 * Neue Perlabhängigkeiten
10
11   * LWP::Authen::Digest für WebshopApi
12   * LWP::UserAgent für WebshopApi
13
14 * Verwendung der WebshopApi
15
16   * Bestehende Datenbanken, die die WebshopApi verwenden sollen benötigen die
17     Postgres Erweiterung pg_trgm
18     Diese kann wie folgt installiert werden:
19
20     su - postgres
21     psql <DATENBANK>
22     CREATE EXTENSION IF NOT EXISTS pg_trgm;
23     \q
24
25     Wenn die Extension installiert ist können in den beiden Dateien
26     - sql/Pg-upgrade2/trigram_indices_webshop.sql
27     - sql/Pg-upgrade2/trigram_indices.sql
28     das ignore auf 0 gesetzt werden und beide Dateien werden dann beim Anmelden eingespielt.
29     Die Trigramindices sind ein Performancegewinn bei größeren Datenbanken
30
31 Upgrade auf v3.5.0
32 ===========================
33
34 * Neue Perl Abhängigkeiten:
35
36   * File::MimeInfo - für den Dateiupload
37   * Sys::CPU
38   * Thread::Pool::Simple
39
40 * Neue externe Abhängigkeiten:
41
42   * pdfinfo
43
44 * In der Rechte-Tabelle auth.master_rights wurden alle Positionswerte mit 100
45   multipliziert, um Lücken für neue Rechte zu schaffen.
46
47 * In der Tabelle "customer" wurde die Spalte "klass" nach "pricegroup_id"
48   migriert. Bei Kunden ohne Preisgruppe ist der Datenbankwert jetzt NULL statt
49   "0". Falls Kunden per CSV-Import importiert werden muß dieses Feld in der
50   CSV-Datei ebenfalls umbenannt werden.
51
52 * Für das neue Feature Lieferantenbriefe ist die Standardvorlage für Briefe
53   (letter.tex) angepasst worden. Statt letter.customer muss der Adressat jetzt
54   aus letter.custoemr_vendor erzeugt werden.
55
56 * In der Tabelle parts wurde die Boolean-Spalte "assembly" entfernt. Zur
57   Erkennung von Waren/Dienstleistungen/Erzeugnissen gibt es nun in parts eine
58   neue Spalte part_type vom ENUM-Typ, der auf die Werte 'part', 'service',
59   'assembly' und 'assortment' beschränkt ist.
60
61 * In der Tabelle parts wurde die Spalten inventory_accno_id, expense_accno_id
62   und income_accno_id entfernt. Deren Funktionalität wurde schon lange durch
63   Buchungsgruppen ersetzt und für die Erkennung des Artikeltyps gibt es nun die
64   Spalte part_type
65
66 Upgrade auf v3.4.1
67 ==================
68
69 * Neue Druckvariante Gelangensbestätigung für Verkaufs-Aufträge
70
71     Im Standard-Vorlagensatz RB befindet sich als Vorlage die ic_supply.tex
72     als Orientierung für die Anpassung an eigene Vorlagen. Eigene Vorlagen
73     müssen entsprechend um diesen Typ für die 3.4.1 erweitert werden.
74
75 * Druckvorlagen für Briefe
76
77     Die Erzeugung der Druckausgabe für die Brieffunktion wurde auf die
78     Verwendung des Template Toolkits umgestellt. Dazu muss die verwendete
79     Druckvorlage "letter.tex" angepasst werden. Im Standard-Vorlagensatz RB ist
80     das bereits geschehen. Falls keine manuellen Änderungen an der "letter.tex"
81     aus einer vorherigen Version gemacht wurden, reicht es, diese Datei
82     ("templates/print/RB/letter.tex") in das verwendete Vorlagenverzeichnis zu
83     kopieren. Ansonsten kann diese Datei als Beispiel dienen.
84
85
86 Upgrade auf v3.4.0
87 ==================
88
89 * Neue Perl-Modul-Abhängigkeiten:
90
91   * Algorithm::CheckDigits
92   * PBKDF2::Tiny
93
94   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
95
96   $ scripts/installation_check.pl -ro
97
98 * Der in der Dokumentation beschriebene Mechanismus für die CGI-Anbindung
99   (2.6.1 Grundkonfiguration mittels CGI) wurde geändert. Ein einfacher Alias
100   auf das Programmverzeichnis funktioniert nicht mehr, und es muss immer ein
101   AliasMatch auf einen dispatcher eingerichtet werden. Die Dokumentation wurde
102   aktualisiert. Für Benutzer der empfohlenen FastCGI Anbindung ändert sich
103   nichts.
104
105 * Der Task-Server ist nun mandantenfähig. Für jeden Mandanten, für den
106   der Task-Server laufen soll, muss in der Administrationsoberfläche
107   in der Konfiguration des Mandanten hinterlegt werden, welchen
108   kivitendo-Benutzer der Task-Server nutzen soll. Ist bei einem
109   Mandanten kein Benutzer hinterlegt, so ignoriert der Task-Server
110   diesen Mandanten.
111
112   Im Gegenzug wurden die beiden Konfigurations-Einstellungen »client«
113   und »login« aus dem Abschnitt [task_server] entfernt. Der
114   Task-Server prüft beim Starten allerdings, ob diese Einstellungen
115   noch existieren und verweigert den Start mit einer hilfreichen
116   Fehlermeldung, solange sie noch vorhanden sind.
117
118 * Die Unterstützung unsicherer Passwort-Hashing-Mechanism wurde
119   entfernt. Für BenutzerInnen, die noch alte Mechanismen verwenden,
120   müssen die Passwörter einmalig in der Administrationsoberfläche
121   zurückgesetzt werden.
122
123   Dies betrifft nur Accounts, deren Passwort sich das letzte Mal vor
124   kivitendo 2.7.0 geändert hat.
125
126 Upgrade auf v3.3.0
127 ==================
128
129 * Bei Upgrade von Versionen vor v.3.2.x wie immer erst die dortigen
130   Upgradehinweise beachten.
131
132 * Es gibt keine neuen Perl-Modul-Abhängigkeiten.
133
134 * Die alte ungepflegte Druckvorlagenvariante "Standard" wurde entfernt.
135   Bereits verwendete Druckvorlagen, die darauf aufbauen, funktionieren
136   natürlich weiterhin.
137
138 * Für die Verwendung des MT940 Import Features der Bankerweiterung muß
139   aqbanking installiert werden. Dies wird nur für die Konvertierung vom MT940
140   ins CSV Format benötigt, das Kommandozeilentool "aqbanking-cli" befindet sich
141   z.B. unter Ubuntu im Paket aqbanking-tools.
142
143 Upgrade auf v3.2.0
144 ==================
145
146 * Neue Perl-Modul-Abhängigkeiten:
147
148   * GD
149   * HTML::Restrict
150   * Image::Info
151   * List::UtilsBy
152
153   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
154
155   $ scripts/installation_check.pl -ro
156
157   Sofern das Upgrade von einer früheren Version als 3.1.0 geschieht auch die
158   Upgradehinweise der Vorversionen beachten.
159
160 * Druckvorlagen auf shipto-Verwendung prüfen
161
162   Hier hat sich das Standardverhalten geändert und ggf. werden shipto* nicht mehr
163   ausgedruckt, hier müssten die Druckvorlagen individuell angepasst werden, s.a.
164   Changelog -> Verkaufsbeleg-Ausdruck.
165
166 Upgrade auf v3.1.0
167 ==================
168
169
170 * BEVOR ein Aufruf im Administrationsbereich erfolgt, muss zwingend der
171   webdav Ordner im Installationspfad vorhanden sein!
172    -  mkdir webdav/
173    -  Rechte für webserver setzen ($ chmod www-data webdav/)
174   Dieses "Feature" war in vorhergehenden Versionen optional, wird aber
175   für das Upgrade auf Mandantenfähigkeit vorausgesetzt.
176
177 * Neue Softwarevoraussetzungen: Perl v5.10.1 oder neuer sowie
178   PostgreSQL 8.4 oder neuer werden zwingend vorausgesetzt. Ein Betrieb
179   mit älteren Versionen ist nicht mehr möglich.
180
181 * Neue Perl-Modul-Abhängigkeiten:
182
183   * File::Copy::Recursive
184   * Rose::DB::Object muss v0.788 oder neuer sein (aufgrund eines Bugs
185     in besagtem Modul im Zusammenspiel mit PostgreSQL)
186
187   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
188
189   $ scripts/installation_check.pl -ro
190
191 * Die Datenbank muss zwingend Unicode als Encoding nutzen. Daher wird
192   auch die Konfigurationsvariable "system.dbcharset" nicht mehr
193   unterstützt.
194
195 * Einführung von Mandanten. Früher war die Konfiguration der
196   Datenbanken für jeden Benutzer getrennt vorzunehmen. Mit diesem
197   Release wurden Mandanten eingeführt: ein Mandant bekommt einen Namen
198   sowie die Datenbankkonfiguration, und Benutzer bekommen
199   Zugriffsrechte auf einen oder mehrere Mandanten.
200
201   Um dieses Update durchzuführen, müssen Sie sich einmal im
202   Administrationsbereich anmelden. Vorher ist kein Login im
203   Benutzerbereich möglich.
204
205   Die neue Struktur bedingt, dass viele Scripte, die bisher zur
206   Konfiguration nur einen Benutzer verlangt haben, jetzt auch einen
207   Mandanten verlangen. Die Konfiguration dieser Scripte ist deshalb
208   manuell anzupassen. Dazu gehören:
209
210   - der Task-Server (config/kivitendo.conf)
211   - CSV-Import von der Shell aus (scripts/csv-import-from-shell.sh)
212
213   Die folgenden Scripte sind ebenfalls betroffen, allerdings nur für
214   Entwickler interessant:
215
216   - scripts/dbupgrade2_tool.pl
217   - scripts/rose_auto_create_model.pl
218
219 * Neue Benutzerrechte
220
221   Diese müssen bei vorhandenen Gruppen eventuell nachgepflegt werden. Z.B. bei
222   der Gruppe Vollzugriff
223
224   - Stammdaten -> Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten.
225     Alle Kunden bearbeiten
226   - Konfiguration -> Verändern der kivitendo-Installationseinstellungen (die
227     meisten Menüpunkte unterhalb von 'System')
228
229 * Die alten ungepflegten Druckvorlagenvarianten French und Service
230   wurden entfernt.
231
232 * Die HTML-Druckvorlagen der Berichte (GuV, Bilanz, SuSa, BWA, UStVA) werden
233   jetzt alle zentral in den Webvorlagen verwaltet, es werden keine
234   benutzerangepasste Versionen der Druckvorlagen im Druckvorlagenverzeichnis
235   mehr unterstützt.
236
237 Upgrade auf v3.0.0
238 ==================
239
240 * Neue Abhängigkeiten
241
242   * Clone 1.16
243   * Email::MIME
244   * FCGI jetzt min Version 0.72
245   * Test::Harness 3.00
246   * IO::Socket::SSL
247   * Net::LDAP
248   * Net::SMTP::SSL
249   * Net::SSLGlue
250
251   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
252
253   $ scripts/installation_check.pl -ro
254
255 * Neue Entwicklerabhängigkeiten
256
257   * Test::Deep
258   * GD 2.00
259
260 * Diverse umstrittene Features zum nicht standardkonformen Umgang mit gebuchten
261   Rechnungen sind jetzt standardmässig deaktiviert und müssen unter "System" ->
262   "Mandantenkonfiguration" aktiviert werden.
263
264 * Die Übersetzungen "de_DE" und "fr" für die alternative deutsche Version und
265   französische Version respektive wurden entfernt. Es bleiben offiziell
266   unterstützte Übersetzungen in Deutsch ("de") und English ("en").
267
268 * Dieses ist die letzte Version, die Perl-Versionen vor 5.10.1
269   unterstützen wird.  Ab dem nächsten Release werden Sprachkonstrukte
270   verwendet werden, die nicht mehr in 5.8 kompilieren, und Module, die
271   seit v5.10.1 zu den Coremodulen gehören, werden ab dann nicht mehr
272   als explizite Abhängigkeiten gelistet.
273
274
275 Upgrade auf v2.7.0
276 ==================
277
278 * In der Version 2.7.0 wird das XUL Menü entfernt. Alle Benutzer die das XUL
279   Menü noch eingestellt haben, werden beim ersten Einloggen auf ein
280   Kompatibilitätsmenü gesetzt. Das Javascriptmenü wurde entsprechend erweitert
281   um der Funktionalität nahe zu kommen.
282
283 * Das Lizenzenfeature wurde ersatzlos entfernt.
284
285 * In den LaTeX Vorlagen gilt der Befehl "pagebreak" und die dazugehörigen
286   "sumcarriedforward" und "lastpage" als deprecated und werden in einer
287   kommenden Version komplett entfernt. Die Mechanik ist anfällig gegenüber
288   subtilen Formatierungsfehlern bei bestimmten Zahlenformaten und ist
289   grundsätzlich fehlerhaft in den gemachten Annahmen über den verfügbaren Platz
290   auf einer Seite. Die Standardvorlagen sind entsprechend angepasst worden
291   und müssen in der Administration neu angelegt werden.
292
293 * Das Druckvorlagensystem wurde umgestellt, dadurch ist der Name "print" für
294   Druckvorlagen jetzt reserviert. Wenn eine Ihrer Vorlagensätze "print" heisst,
295   benennen Sie ihn um bevor Sie das Update starten.
296
297 * Die Druckvorlagen für USTVA vor 2012 wurden entfernt und das Ausdrucken von
298   USTVA als PDF ist deprecated. Da die Eingabe von Erklärungen als PDF nicht
299   mehr gestattet ist, sollten Archivkopien der USTVA direkt bei Elster bezogen
300   werden, oder auf anderem Wege erstellt werden. Der Prozess dazu wird sich in
301   einer kommenden Version ändern.
302
303 * Die Namen der von LaTeX generierten PDF-Dateien sind jetzt in der
304   eingestellten Dokumentensprache, nicht mehr in der Oberflächensprache des
305   Bearbeiters.
306
307 * Neue Abhängigkeiten
308
309   * JSON
310   * String::ShellQuote
311   * Digest::SHA (optional, empfohlen)
312
313   Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
314
315   $ scripts/installation_check.pl -ro
316
317 * CSV-Import wurde neu in Perl implementiert
318
319   Der PHP-Code wurde entfernt. Automatische Skripte, die per Aufruf von
320   lxo-import/partsB.php?cron=1 die Datei parts.csv importiert haben,
321   funktionieren nicht mehr.  Stattdessen kann scripts/csv-import-from-shell.sh
322   benutzt werden. Im Unterschied zur PHP-Version werden unbekannte Warengruppen
323   nicht mehr automatisch angelegt, stattdessen bricht das Skript ab.
324
325 * Rechteverwaltung
326
327   * Das Recht "Kunden und Lieferanten bearbeiten" wurde aufgespalten in zwei
328     einzelne Rechte. Ein Updatescript passt bestehende Gruppenaentsprechend an.
329   * Das Recht "Preise nd Rabatte bearbeiten" wurde neu eingeführt und ist
330     notwendig um in Belegen Preise ändern zu können. Es wird beim Upgrade
331     automatisch allen Benutzern erteilt.
332   * Das Recht "Administration" wurde neu eingeführt, und ist dazu da
333     administrative Tätigkeiten an der Mandantendatenbank aus einm Benutzerlogin
334     heraus durchzuführen. Es ist standardmäßig NICHT vergeben.
335   * Der Vorlageneditor wurde unter das Recht Administration gestellt, war
336     vorher Konfiguration.
337
338
339 Upgrade auf v2.6.3
340 ==================
341
342 1. Mit Version 2.6.3. wurden die beiden Konfigurationsdateien
343 authentication.pl und lx-erp.conf, sowie deren Varianten,
344 abgeschafft. Stattdessen gibt es nun die Datei lx_office.conf, die
345 aber erst neu angelegt werden muß. Als Vorlage dient hierfür die Datei
346 lx_office.conf.default. Die entsprechenden Werte muß man selber neu
347 konfigurieren, dies ist automatisiert zu fehleranfällig.
348
349 Nach dem Upgrade kann man sich so lange nicht anmelden, bis lx_office.conf
350 angelegt und authentication.pl und lx-erp.conf gelöscht oder verschoben wurden.
351
352 Es gibt keine local-Variante der lx_office.conf, arbeitet man mit git sollte
353 man lx_office.conf nicht einchecken.
354
355 Eine etwas ausführlichere Beschreibung findet sich in Kapitel 2.3
356 "Lx-Office-Konfigurationsdatei" in doc/Lx-Office-Dokumentation.pdf
357
358 2. Eine neu hinzugekommene Komponente ist der Task-Server. Hierbei
359 handelt es sich um einen Dämonen, der im Hintergrund läuft, in
360 regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
361 zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
362 Dämon wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen
363 benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen
364 bekommen. Die Einrichtung des Dämonen wird in der
365 Installationsdokumentation im Abschnitt "Der Task-Server" beschrieben.
366
367 3. Mit Version 2.6.3 sind einige Abhängigkeiten von Perl-Modulen
368 hinzugekommen. Bitte führen sie vor dem ersten Aufrufen der einmal
369 den folgenden Befehl im Lx-Office Verzeichnis aus:
370
371 $ scripts/installation_check.pl
372
373 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
374 der Installationsanweisung.
375
376 Zumindest folgende Module sind neu benötigt:
377
378 * Config::Std
379 * Params::Validate
380
381 4. Sollten Sie die FCGI-Version einsetzen, das Apache-Modul
382 "mod_fcgid" (nicht "mod_fastcgi") benutzen und von diesem Modul die
383 Version v2.6.3 oder später installiert haben, so ist außerdem wichtig,
384 seinen Parameter "FcgidMaxRequestLen" deutlich zu erhöhen, weil sich
385 dieser im Release mod_fcgid-Release v2.6.3 deutlich geändert
386 hat. Details dazu finden sich in Kapitel 2.5.2 "Konfiguration für
387 FastCGI/FCGI" in doc/Lx-Office-Dokumentation.pdf
388
389
390 Upgrade auf v2.6.2
391 ==================
392
393  Vor dem Einloggen
394  -----------------
395
396 Mit Version 2.6.2 sind einige Abhängigkeiten von Perl-Modulen hinzugekommen.
397 Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
398 Lx-Office Verzeichnis aus:
399
400 $ scripts/installation_check.pl
401
402 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
403 der Installationsanweisung.
404
405 Zumindest folgende Module sind neu benötigt:
406
407 * Rose::Object, Rose::DB und Rose::DB::Object (die Installation von
408   Rose::DB::Object via CPAN oder den Paketmechanismus Ihrer
409   Distribution sollte für die automatische Installation der anderen
410   zwei Pakete sorgen)
411
412  Neue Gruppenrechte
413  ------------------
414
415 Es wurde ein neues Recht "Druck" eingeführt. Dieses bestimmt, ob die
416 Benutzerin das Menü "Druck" zu Gesicht bekommt oder nicht, unabhängig
417 davon, wie die Rechte für die einzelnen Unterpunkte gesetzt sind.
418
419 Für bereits bestehende Gruppen muss es sofern gewünscht vom
420 Administrator manuell gewährt werden.
421
422
423 Upgrade auf v2.6.1
424 ==================
425
426  Vor dem Einloggen
427  -----------------
428
429 Mit Version 2.6.1 wurden die Listen der benötigten Perl Module überarbeitet.
430 Einige der vorher in den Abhängigkeiten gelisteten Module waren Coremodules
431 (und damit in jeder Perldistribution vorhanden), oder ihrerseits Abhängigkeiten
432 anderer benötigter Module. Durch die Überarbeitung hat sich die Liste deutlich
433 geändert.
434
435 Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
436 Lx-Office Verzeichnis aus:
437
438 $ scripts/installation_check.pl
439
440 Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
441 der Installationsanweisung.
442
443 Zumindest folgende Module sind neu benötigt:
444
445 * URI
446 * XML::Writer
447
448  Neue Konfigurationsvariablen
449  ----------------------------
450
451 In der config/lx-erp.conf ist als neue Option $show_best_before hinzugekommen.
452 Die Variable kontrolliert die Anzeige von Mindesthaltbarkeitsdaten. Sie ist
453 standardmäßig deaktiviert.