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