FriendsOfREDAXO / focuspoint

Erweitert den Medienpool um die Fähigkeit, den Fokuspunkt eines Bildes zu bestimmen.
MIT License
58 stars 7 forks source link

Installationsproblem mit Transaktion (Commit) ausgelöst durch PHP8 #104

Closed skerbis closed 3 years ago

skerbis commented 3 years ago
AddOn focuspoint konnte aus folgendem Grund nicht installiert werden:
SQL error: Unable to commit, no transaction started before … R.5.12.-beta2, 

UPDATE: Der Fehler tritt unter PHP 7.3.x nicht auf.

beim 2. Click geht’s

System report (REDAXO 5.12.0-beta2, PHP 8.0.2, MariaDB 10.2.36) | REDAXO | | | ------------: | :----------- | | Version | 5.12.0-beta2 | | PHP | | | ------------: | :--------- | | Version | 8.0.2 | | OPcache | yes | | Xdebug | no | | Database | | | ------------: | :-------------- | | Version | MariaDB 10.2.36 | | Character set | utf8mb4 | | Server | | | ------------: | :--------- | | OS | Linux | | SAPI | fpm-fcgi | | Webserver | Apache | | Request | | | ------------: | :------------ | | Browser | Safari/14.0.2 | | Protocol | HTTP/1.0 | | HTTPS | yes | | Packages | | | --------------------------: | :----------- | | adminer | 1.8.3 | | backup | 2.7.0-beta2 | | be_style | 2.12.0-beta2 | | be_style/customizer | 2.12.0-beta2 | | be_style/redaxo | 2.12.0-beta2 | | cke5 | 4.2.2 | | cronjob | 2.8.0-beta2 | | debug | 1.1.0-beta2 | | focuspoint | 3.0.1 | | icecoder | 2.0.2 | | install | 2.9.0-beta2 | | maintenance | 2.5.1 | | markitup | 3.6.0 | | mblock | 3.1.0 | | media_manager | 2.11.0-beta2 | | mediapool | 2.10.0-beta2 | | metainfo | 2.8.0-beta2 | | minibar | 2.2.1 | | modulsammlung | 4.15.2 | | modulsammlung/documentation | 1.0 | | navigation_array | 1.1.1 | | osmproxy | 1.4.1 | | pdfout | 3.0.0 | | phpmailer | 2.10.0-beta2 | | project | dev | | quick_navigation | 4.0.0 | | sked | 2.1.0 | | structure | 2.12.0-beta2 | | structure/content | 2.12.0-beta2 | | structure/history | 2.12.0-beta2 | | tinymce5 | 1.0.0-beta5 | | uploader | 2.2.1 | | users | 2.8.0-beta2 | | zip_install | 1.1 |
christophboecker commented 3 years ago

7.4 klappt auch tadellos. Mit 8.0 kann ich erst am Wochenende testen

christophboecker commented 3 years ago

Sieht so aus, dass unter PHP8 die SQL-Schnittstelle PDO anders bedient wird als unter PHP7. Fragt man den Status an verschiedenen Stellen mit $sql->inTransaction() (true/false) ab, kippt er in rex_sql->setQuery() beim ausführenden PDO-Statement, wenn die Query ALTER TABLErex_mediaADDmed_focuspointvarchar(20) DEFAULT ausgeführt wird.

In der PHP-Doku finde ich:

Some databases, including MySQL, automatically issue an implicit COMMIT when a database definition language (DDL) statement such as DROP TABLE or CREATE TABLE is issued within a transaction. The implicit COMMIT will prevent you from rolling back any other changes within the transaction boundary.

Mist!

christophboecker commented 3 years ago

Muss mal schauen, wie ich die Installation umschreibe, irgendwie das Anlegen des Metafeldes aus der Transaktion nehmen,