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