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