Projekt

Allgemein

Profil

Fehler #426

rose_auto_create_model.pl kaputt unter Ubuntu 20.04

Von Bernd Bleßmann vor mehr als 4 Jahren hinzugefügt. Vor mehr als 4 Jahren aktualisiert.

Status:
Gelöst
Priorität:
Hoch
Zugewiesen an:
-
Zielversion:
-
Beginn:
04.05.2020
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Der Aufruf von z.B. ./scripts/rose_auto_create_model.pl --dry-run --client Bernd_Current customer ergibt einen Fehler:

Error in execution for table 'customer'
'Could not auto-generate columns for class SL::DB::AUTO::Customer - no column info found for catalog '' schema 'public' table 'customer' at (eval 1852) line 6.
'

Das kommt aus Rose::DB::Object::Metadata::Auto->auto_initialize

Ich habe dazu diesen Bug-Report gefunden: https://rt.cpan.org/Public/Bug/Display.html?id=129584

Problem ist wohl eine neu Version von DBD::Pg (bei Ubuntu im Paket libdbd-pg-perl (Ubuntu 18 Version 3.7.0, Ubuntu 20 Version 3.10.4).

Ich habe auch testweise die Vergleiche auf TABLE_CAT mal entfernt (siehe Dateianhang) - damit klappt das auto-generieren wieder, allerdings ohne Fremdschlüssel. Zudem weiß ich nicht, was noch kaputt ist und welchen anderen Auswirkungen das ganze hat.

(evtl. gibt es auch noch Probleme mit Postgresql12 - kivigeoff berichtet von einer anderen Fehlermeldung bei DBD::Pg Version 2.19.3 mit Postgresql12).


Dateien

Historie

#1

Von Moritz Bunkus vor mehr als 4 Jahren aktualisiert

Das Problem wurde in Rose::DB::Object 0.817 behoben (genauer: in 0.816, aber 0.817 war kurz darauf nötig, um noch eine Ungereimtheit zu fixen), bzw. in der Version wurde RDBO an das neue Verhalten von DBD::Pg angepasst. Ich hatte das Problem auch schon eine Weile auf Arch Linux.

Ich meine, dass deine Patches nicht ausreichen, zumindest hatte ich Ähnliches probiert, und es hatte dann außerhalb von rose_auto_create_models.pl Probleme gegeben (genau, die Fremschlüssel verschwinden dann ebenfalls). Jedenfalls bin ich strikt dagegen, in kivitendo einfach irgendwelche Rose-Module auf die Art zu überschreiben, ehrlich gesagt.

Die richtige Lösung: verlangen, dass RDBO ≥ 0.817 installiert ist, wenn DBD::Pg ≥ 3.8.0 gefunden wird.

Eventuell wäre es sinnvoll, einen Bugreport für librose-db-object-perl in Ubuntu selber zu eröffnen und dort darauf zu pochen, dass die Version auf RDBO 0.817 aktualisiert wird.

Mit PostgreSQL 12 und DBD::Pg 3.8.1 hingegen läuft alles einwandfrei.

#2

Von Moritz Bunkus vor mehr als 4 Jahren aktualisiert

Nachtrag: ich hatte eine ganze Zeit lang kivitendo mit DBD::Pg 3.8.1 aber Rose::DB::Object 0.815 (also der kaputten Version) auf meinem Arch Linux genutzt und rose_auto_generate_models.pl schlicht auf einem anderen Rechner aufgerufen. Das funktionierte einwandfrei.

Oder anders ausgedrückt: das Problem besteht eigentlich nur für Entwickler*innen, nicht aber für Anwender*innen. Und Entwickler können sich einfach Rose::DB::Object 0.817 installieren und haben dann das Problem nicht mehr.

kivitendo sollte auf Ubuntu 20.04 installiert und ausgeführt werden können.

#3

Von Bernd Bleßmann vor mehr als 4 Jahren aktualisiert

  • Status wurde von Neu zu Gelöst geändert

Für Ubuntu 20.04 können Entwickler librose-db-object-perl (0.817) und, da es eine Abhängigkeit ist, librose-db-perl (0.783) aus Ubuntu 20.10 (groovy) installieren. Damit geht "rose_auto_create_model" wieder.

Auch abrufbar als: Atom PDF