[vz-users] Oracle als Datenbank?
Stephan Mühlstrasser
stephan.muehlstrasser at gmail.com
So Jun 6 16:54:23 CEST 2021
Hallo Andreas,
> Sollte gehen.
>
> Viele Grüße, Andreas
danke für den Hinweis, dass es prinzipiell funktionieren sollte. Ich
habe nun mein Glück versucht:
- Aktueller Stand des volkszaehler.org Repositories (Commit
59393e54b0a7531f23d8ac9e336889a9c00a24e5)
- Oracle Cloud VM mit Ubuntu 20.04 Image
- Oracle Autonomous Database Version 19c
- Oracle Instant Client Version 19.11.0.0.0
- PHP Oracle OCI8 Treiber
- Apache 2 mit PHP 7.4 in der Variante "Apache als Server" manuell
aufgesetzt
Ich habe die MySQL-SQL-Anweisungen in install.sh mit meinen beschränkten
Datenbank-Kenntnissen auf Oracle-SQL-Anweisungen abgebildet. Da ich die
Benutzer-Konzepte von MySQL nicht 1:1 auf Oracle abbilden konnte, läuft
im ersten Versuch alles unter dem Oracle-Admin-Account.
Das hat soweit geklappt, dass die doctrine-Aufrufe für
"orm:schema-tool:create" and "orm:generate-proxies" erfolgreich
durchgelaufen sind. Danach kann ich die neuen Tabellen in der
Oracle-Datenbank sehen.
Wenn ich dann das Web-Frontend aufrufe, funktioniert es aber erst mal
nicht. Und es sieht so aus, als wenn Oracle dann doch nicht ohne
weiteres benutzt werden kann. Wenn ich versuche, einen neuen lokalen
Kanal anzulegen, dann tauchen folgende Fehlermeldungen in den
Chrome-Entwicklertools auf:
Request 1 mit Response:
https://<meine
domain>/api/data/a301d8d0-903b-1234-94bb-d943d061b6a8.json?unique=1622989660516&from=1622903221701&to=1622989621701&tuples=153
{"version":"0.3","exception":{"message":"Cannot instantiate abstract
class
Volkszaehler\\Interpreter\\SQL\\SQLOptimizer","type":"Error","code":0}}
Wenn ich mir die Methode SQLOptimizer::staticFactory() in
lib/Interpreter/SQL/SQLOptimizer.php anschaue, dann ist die für Oracle
nicht vorbereitet.
Request 2 mit Response:
https://<meine domain>/api/entity.json?unique=1622989629337
{"version":"0.3","exception":{"message":"An exception occurred while
executing 'SELECT e0_.id AS ID_0, e0_.uuid AS UUID_1, e0_.type AS
TYPE_2, p1_.pkey AS PKEY_3, p1_.value AS VALUE_4, e0_.class AS CLASS_5,
p1_.entity_id AS ENTITY_ID_6 FROM entities e0_ LEFT JOIN properties p1_
ON e0_.id = p1_.entity_id INNER JOIN properties p2_ ON e0_.id =
p2_.entity_id WHERE (p2_.pkey = ? AND p2_.value = ?) AND e0_.class IN
('channel', 'aggregator') ORDER BY p1_.pkey ASC' with params
[\"public\", 1]:\n\nORA-00932: inconsistent datatypes: expected - got
CLOB","type":"DriverException","code":0}}
Diesen Fehler kann ich nicht einordnen, vielleicht ein Problem in
Doctrine selbst.
So ohne weiteres scheint es mit Oracle wohl doch nicht zu gehen. Ich
werde den Versuch wohl aufgeben.
Viele Grüße
Stephan
Mehr Informationen über die Mailingliste volkszaehler-users