Affected version(s)
Contao: 4.8.2
PHP: 7.2.22
MySQL: 8.0.17
Description
The Database::quoteIdentifier() does not quote the column name "member", which is a reserved word in the latest MySQL release (8.0.17). This causes the very initial database update to break since a member column is present in the comments-bundle.
~As far as I can tell, the quoting is not done by Contao itself but the underlying database engine (Doctrine?) but I'm not deep enough into the weeds to find the root cause.~ I have actually no idea and I should better hold back with guesses.
How to reproduce
Please specify the Contao and PHP version. Also for the future: issues should be created in the contao/contao mono repository, not here. You do not need to create a new issue though, the current one can be moved.
Thanks for the pointer, versions have been added.
Shouldn't DBAL escape the keywords in Contao > 4.4?
Seems that their keyword list is not up to date. Granted, MySQL 8.0.17 isn't even two months old. However, I don't see an according issue in their repo yet, so I'll attach one there.
Alright, this should be fixed as soon as doctrine/dbal#3674 lands.
Great. Let's keep the issue open until the PR has been merged.
The issue has been fixed in Doctrine 😎
Not sure if I am suppsed to close this, or assign a milestone etc. 😂
That's how I feel as well, that's because I haven't closed it yet. Mostly because I have no idea when they will actually publish a release with the fix. 🤷♂
This will not help if you use a reserved name as a field name in your DCA and try to manually filter by it. Database::quoteIdentifier is not used on the field. E.g. this will happen if you filter by groups in tl_member.
I would be happy if anyone could, please, gave an estimation when the issue will be solved...
See https://github.com/doctrine/dbal/pull/3674#issuecomment-548178888
Hallo und Danke für die Info.
Leider ist es inakzeptabel, mehrere Wochen auf ein Update warten zu
müssen. Die Inkompatibilität verhindert den Start meines Projektes...
Ich hätte es auch für angemessen gehalten, wenn eine solch gravierende
Angelegenheit in der Dokumentation von contao festgehalten wird
(Systemvoraussetzungen: z.B. so: 4 < Mysql version < 8).
Gruß, Ernst
Leider ist es inakzeptabel, mehrere Wochen auf ein Update warten zu
müssen. Die Inkompatibilität verhindert den Start meines Projektes...
Leider ist diese Haltung inakzeptabel. Doctrine ist - wie Contao - OpenSource Software, die du kostenlos benutzt. Du kannst Entwicklung aber ggf. mit Geld beschleunigen.
Die Dokumentation ist übrigens ebenfalls Open Source (https://github.com/contao/docs). Du bist herzlich dazu eingeladen, einen entsprechenden Hinweis anzubringen.
Es sei denn natürlich, du hast keine Zeit dafür. Dann natürlich nicht, weil alle anderen die hier kostenlos mithelfen haben davon ja zu viel und arbeiten gerne für dich.
Vor allem, weil wir als Contao ja gar nichts tun können. Wir müssen auf Doctrine warten und Sergei hat geschrieben "within a few weeks".
(Systemvoraussetzungen: z.B. so: 4 < Mysql version < 8).
This would be incorrect. The incompatibility only concerns MySQL 8.0.17 and up. Unfortunately (for many, not just Contao) neither MariaDB nor MySQL seem to adhere to semantic versioning.
Ich muss mich wohl entschuldigen, aber versteht bitte meinen Frust...
Habe eine Änderung der Dokumentation angestossen.
Danke euch
Ich habe gerade den Fix https://github.com/doctrine/dbal/pull/3674/commits/f932579d44d2b51ca4161e83982f41898726f95c manuell eingebaut - der bring aber leider keine Abhilfe.
Das Problem beim einloggen besteht weiterhin.
Siehe auch https://community.contao.org/de/showthread.php?76187-MySQL-8-0-15-SQL-Error-bei-Abfrage/page2&p=513766&viewfull=1#post513766
Müssen vielleicht noch weitere Anpassungen vorgenommen werden?
Die Inkompatibilität verhindert den Start meines Projektes...
Das lässt sich beheben indem du in deiner composer.json explizit die Version für doctrine vorgibst. In diesem Fall kannst du den Commit angeben indem der Patch gemerged wurde:
"doctrine/dbal": "dev-master#b0726e7aab01080fc385599a88491a0ccdbd9417 as 2.10.0",
Dasselbe Prinzip lässt sich sogar anwenden wenn der Patch noch nicht gemerged wurde, dafür ist dann allerdings ein eigener Fork und etwas mehr Konfiguration in der composer.json nötig.
Nachdem du das gemacht hast, wäre es super wenn du hier im Issue bestätigen könntest dass damit das Problem behoben ist, oder beschreibst ob weiterhin ein Fehler auftritt.
Danke für den Tipp, nur:
Ich installiere Contao erstmalig, da habe ich doch nur die
contao-manager.phar.php, eine composer.json gibt es noch nicht, oder??
Am 02.11.19 um 19:33 schrieb Martin Auswöger:
>
Die Inkompatibilität verhindert den Start meines Projektes...Das lässt sich beheben indem du in deiner /composer.json/ explizit die
Version für doctrine vorgibst. In diesem Fall kannst du den Commit
angeben indem der Patch gemerged wurde:"doctrine/dbal": "dev-master#b0726e7aab01080fc385599a88491a0ccdbd9417 as 2.10.0",
Dasselbe Prinzip lässt sich sogar anwenden wenn der Patch noch nicht
gemerged wurde, dafür ist dann allerdings ein eigener Fork und etwas
mehr Konfiguration in der /composer.json/ nötig.Nachdem du das gemacht hast, wäre es super wenn du hier im Issue
bestätigen könntest das damit das Problem behoben ist, oder
beschreibst ob weiterhin ein Fehler auftritt.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/contao/contao/issues/727?email_source=notifications&email_token=ABZWBOYSODRMDWHEBQETKODQRXBZNA5CNFSM4IUIZOCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC5CF3Y#issuecomment-549069551,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZWBO32JM7SMRB45SIDMFDQRXBZNANCNFSM4IUIZOCA.
Ich installiere Contao erstmalig, da habe ich doch nur die contao-manager.phar.php, eine composer.json gibt es noch nicht, oder??
Korrekt, aber nach der Erst-Installation hast du eine composer.json und kannst die oben erwähnte Zeile ergänzen und danach ein Update über den Manager durchführen.
Leider bricht die Installation mit einem sql error ab...(reserviertes
Wort member)
Am 02.11.19 um 21:09 schrieb Martin Auswöger:
>
Ich installiere Contao erstmalig, da habe ich doch nur die contao-manager.phar.php, eine composer.json gibt es noch nicht, oder??Korrekt, aber nach der Erst-Installation hast du eine /composer.json/
und kannst die oben erwähnte Zeile ergänzen und danach ein Update über
den Manager durchführen.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/contao/contao/issues/727?email_source=notifications&email_token=ABZWBO3Z72UE7QGP5EWY7WLQRXM7HA5CNFSM4IUIZOCKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEC5D5WQ#issuecomment-549076698,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABZWBO72XON2FPMZB2JA5QTQRXM7HANCNFSM4IUIZOCA.
Die Installation ist unabhängig von diesem Problem.
? Die Installation bricht beim Anlegen der Datenbanktabellen ab...
Hast du die Schritte von @ausi durchgeführt?
Warum habe ich nur das Gefühl, wir reden total aneinander vorbei?
Du musst:
composer create-project installieren.composer.json entsprechend der erwähnten Anleitung editieren.Hattest du das nun schon gemacht oder nicht?
Version 2.10.0 has been released: https://github.com/doctrine/dbal/releases/tag/v2.10.0
Keep in mind that you need at least PHP 7.2.0.
is this fixed with Contao 4.9? Should we raise the minimum dependency?
We already did: https://github.com/contao/contao/blob/4.9/composer.json#L50
dann können wir das Issue schliessen?
Most helpful comment
Leider ist diese Haltung inakzeptabel. Doctrine ist - wie Contao - OpenSource Software, die du kostenlos benutzt. Du kannst Entwicklung aber ggf. mit Geld beschleunigen.