Willkommen im kivitendo Forum! Hier erweitern und teilen AnwenderInnen und EntwicklerInnen ihr Wissen.

Teste kivitendo!

kivitendo Demo

kivitendo Demo mit Schweizer Kontenplan und neuem Layout

Unterstützt kivitendo mit der Basis-Subskription!

0 Punkte

Hallo,

eigentlich habe ich in meinem anderen Frage-Faden dies hier noch eingefügt, dürfte aber schlicht untergehen.

Deswegen stelle ich die Frage noch einmal neu.

Ich hatte auf einer frischen Festplatte ein neues betriebssystem aufgesetzt, ubuntu 22.04 LTS und Kivitiendo 3.7.0 installiert.
Auf meinem alten System lx-office 2.6.0 hatte ich die Datenbank gesichert und unter schweren "Geburtswehen" in kivitendo eingespielt. Den Faden dazu gibt es hier: https://forum.kivitendo.de/6162/neu-installation-3-7-0-fehler-bei-datenbankaktualisierung

Nachdem ich schon beinahe optimistisch war ist jetzt doch ein Fehler eingetreten:

Ich kann meine Rechnungen nicht buchen.

In der Mandantenkonfiguration musste ich noch die Standardkonten einrichten. Die waren etwas "durcheinander".

Beim Versuch zu buchen, bekomme ich diese Fehlermeldung:

do_transaction() failed - DBD::Pg::st execute failed: ERROR: column "imported" does not exist
LINE 82: AND NOT imported

                       ^ at /var/www/html/kivitendo-erp/SL/DBUtils.pm line 150.

ES gibt also angeblich die Spalte "imported" nicht, wo auch immer die sein sollte.

Im angegebenen script ist in der Zeile 150 folgendes zu finden:

$sth->execute() || $form->dberror($query);

Also lediglich, dass eine Fehlermeldung ausgegeben werden soll.

Alte Buchungen sind zu finden und offenkundig auch vollständig. Über das Buchungsjournal hatte ich getestet, ob auch alle alten Buchungen genauso da sind, wie im "Original".

Irgend etwas fehlt, aber ich bekomme es nicht wirklich raus.

In dem script DBUtils.pm ist ein Teil auskommentiert ( nicht von mir):

add token to values.
usage:
add_token(

\@where_tokens,
\@where_values,
col => 'id',
val => [ 23, 34, 17 ]
esc => \&conf_i

)
will append to the given arrays:
-> 'id IN (?, ?, ?)'
-> (conv_i(23), conv_i(34), conv_i(17))

features:
- don't care if one or multiple values are given. singlewill result in 'col = ?'
- pass escape routines - expand for future method
- no need to type "push @where_tokens, 'id = ?'" over and over again

Ich bin nicht sicher was hier eigentlich gemacht werden soll.

Oder liegt es doch an einem meiner vorherigen Aktionen?

EDIT: Die auskommentierten Zeilen müssen auch auskommentiert bleiben. Ich habe es einfach mal versucht, aber ist kivitendo komplett abgestürzt.

Was könnte hier die Ursache sein?

von (390 Punkte)

1 Antwort

+1 Punkt
 
Beste Antwort

Hallo,
das kann durchaus an Deinen vorherigen Aktionen liegen, dass ist hier wirklich schwer zu sagen. Vielleicht wäre es wirklich billiger mal einen kivipartner um direkte Unterstützung zu fragen. Der kann das dann mit Dir analysieren und beheben im Forum ist das echt schwierig und genauso oder noch mehr Zeitaufwendig. Sei mir nicht böse. Bis zu einem gewissen Aufwand helfe ich gerne hier im Forum, aber in Deinem Fall wäre es Probier mal das oder das und es zieht sich hin.
Es fängt schon mit so fragen an wie du kivitendo installiert hast über git oder die release-Datei
git macht die updateprozesse einfacher.
sind alle updatescripte bis auf die konjunktur Dinger durchgelaufen? in Deinem Fall speziell "add_gl_imported"
hast du auch Apache neu gestarten, ich gehe davon aus.
was sagt der installationcheck
und und und

Beste Grüße
Werner kivitendodienstleister

Unterstütze kivitendo mit einer Basis-Subcription

von (18.9k Punkte)
ausgewählt von

Das war aber schon der entscheidende Hinweis, vielen Dank!

Und: Darauf hätte ich auch selber kommen können, zumal ich mir meine Schritte, die ich gemacht habe auch notiert hatte.
Nebenbei: Ich hatte kivitendo manuell installiert.

Das script "add_gl_imported.sql" ist nämlich offenkundig nicht durchgelaufen.

Der Fehler:

Die "Konjunktur-Dinger" hatte ich ja auf "ignore: 1" gesetzt. Das hatte zur Folge, dass bei der Datenbankaktualisierung jedes mal, wenn ein script, das in den Abhängigkeiten auf genau diese oder auch auf scripts referenziert, die wiederum wieder eine Abhängigkeit zu den Konjunktur-Paket upgrades aufweisen, eine Fehlermeldung auswerfen.

Das hatte mich erst dazu verleitet, weiter scripts auf ignore: 1 zu setzen, eben auch obiges. Das war nur mittel erfolgreich, da sich das immer weiter wiederholen würde.

Also hatte ich das wieder zurück genommen und statt dessen direkt die Abhängigkeiten, wo es notwendig war auskommentiert. Dabeihabe ich aber übersehen, "add_gl_imported" wieder auf ignore: 0 zusetzen.
Jedenfalls ist das auch eher die Methode "Kantholz", da dann notwendige Abhängigkeiten sich ebenfalls erledigen.

Lösung: Und das wäre gleich besser gewesen:
Zunächst den Mandanten ausgeschaltet, aber vorher der Sicherheit halber mit einer anderen Datenbank verknüpft, bis die Arbeit erledigt ist.

Nachdem man die "konjunkturpaket_2020" scripts, es sind fünf an der Zahl mit

sed -i 's/ignore: 0/ignore: 1/g' sql/Pg-upgrade2/konjunkturpaket_2020*

entsprechend "ausgeschaltet" hat, müssen noch Abhängigkeiten aufgelöst werden.

Bei mir war es in diesen upgrade scripten der Fall:

release_3_5_6. sql und release_3_5_6_1.sql.

-- @tag: release_3_5_6
-- @description: Leeres Script, das alle Upgradescripte bis zum Release 3.5.6 voraussetzt, um ein fest definiertes Schema zu definieren.
-- @depends: release_3_5_5 dunning_config_print_original_invoice customer_vendor_add_natural_person bank_account_flag_for_zugferd_usage defaults_contact_departments_use_textfield contact_departments_own_table defaults_vc_greetings_use_textfield greetings_own_table defaults_contact_titles_use_textfield contact_titles_own_table remove_taxkey_15_17_skr04 defaults_zugferd_test_mode defaults_split_address gl_add_deliverydate customer_create_zugferd_invoices
'--konjunkturpaket_2020'

Also habe ich hier lediglich die Referenzen auf die Konjunktur-scripte gelöscht, bzw. hinten angestellt und auskommentiert.

Ebenso hier:

-- @tag: release_3_5_6_1
-- @description: Leeres Script, das alle Upgradescripte bis zum Release 3.5.6.1 voraussetzt, um ein fest definiertes Schema zu definieren.
-- @depends: release_3_5_6 exchangerate_in_oe ap_set_payment_term_from_vendor alter_default_shipped_qty_config delete_cvars_on_trans_deletion_add_shipto transfer_out_serial_charge_number
'-- konjunkturpaket_2020_SKR04-korrekturen konjunkturpaket_2020_SKR03-korrekturen'

Auskommentiert, damit ich gegebenenfalls später noch sehen kann, wie es ursprünglich mal war, um es wieder herzustellen.
Grundsätzlich kann man auch das script kopieren, eines umbenennen und das neue entsprechend ändern, was im Zweifel auch übersichtlicher ist.

Danach dann: scripts/installation_check.pl ausgeführt, dann den postgresql server neu gestartet, im Admin-Bereich den Mandanten wieder mit der Datenbank verknüpft, Verbindung gecheckt und im Benutzer Bereich wieder angemeldet.

Das löste eine Datenbankaktualisierung aus und auch angezeigt, dass add_gl_imported.sql ausgeführt wird.

Und nun funktioniert auch die Buchung.

Damit sollte das nun auch erledigt sein.

Ähnliche Fragen

0 Punkte
3 Antworten
0 Punkte
1 Antwort
0 Punkte
2 Antworten
Gefragt 31, Jan 2016 von turtle (2.7k Punkte)
0 Punkte
2 Antworten
...