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