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