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