Fehler #426
rose_auto_create_model.pl kaputt unter Ubuntu 20.04
0%
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
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.
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.
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.