Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check all innodb_large_prefix requirements #80

Closed
ghost opened this issue Dec 29, 2017 · 5 comments
Closed

Check all innodb_large_prefix requirements #80

ghost opened this issue Dec 29, 2017 · 5 comments
Assignees
Labels
Milestone

Comments

@ghost
Copy link

ghost commented Dec 29, 2017

Comment by @fmoessbauer
December 29th, 2017, 12:21 GMT

Ah, I was referring to the changelog on contao.org: https://contao.org/de/changelog/versions/4.5.html

For me, all settings where missing, however the install tool detected that innodb_large_prefix was not enabled. I then enabled that and the install tool showed the DB updates. However when starting the DB updates, the error appeared in the logs, and hence the tool was not able to get past the change to innoDB.

@leofeyer leofeyer added this to the 4.5.1 milestone Dec 29, 2017
@leofeyer
Copy link
Member

We should check all three requirements depending on the MySQL version.

@christian-schattat
Copy link

Nachdem das Installtool den Hinweis

Die innodb_large_prefix-Option ist nicht aktiv!

ausgegeben hat, habe ich den Hoster darum gebeten, die Option zu aktivieren. Der Hoster hat mich anschliessend darauf aufmerksam gemacht, dass die Option veraltet ist:

die option innodb_large_prefix ist als 'deprecated' markiert und kann unter anderem deshalb auf unseren shared-hostings eher nicht aktiviert werden. gibt es keine möglichkeit diesen fehler anderweitig zum umgehen?

Im MySQL-Handbuch habe ich folgende Aussage gelesen:

innodb_large_prefix is deprecated and will be removed in a future release. innodb_large_prefix was introduced in MySQL 5.5 to disable large index key prefixes for compatibility with earlier versions of InnoDB that do not support large index key prefixes.

Es ist eigentlich kein Problem, da in der Readme eine Alternative steht. Dennoch wäre die Umstellung auf InnoDB im Rahmen des Updates auf Contao 4.5 schon nett gewesen. Bitte diesen Issue daher eher als Info zu möglichen Hosting-Einschränkungen und nicht als Problem verstehen. ;-)

@leofeyer
Copy link
Member

Die Aussage "ist deprecated und kann daher nicht aktiviert werden" ist völliger Blödsinn. Das Flag ist deprecated, weil spätere MySQL-Versionen die Option immer verwenden und man halt dann kein Flag mehr braucht. Deshalb kann man das Flag in MySQL 5.5 trotzdem nutzen!

@leofeyer
Copy link
Member

leofeyer commented Jan 2, 2018

Behoben in 1bdf0ec.

@leofeyer leofeyer closed this as completed Jan 2, 2018
@m-vo
Copy link
Member

m-vo commented Jan 5, 2018

Even with innodb_large_prefix enabled a problem can occur if the default ROW_FORMAT does not get set in the query.

For instance: With MariaDB < 10.2 the ROW_FORMAT defaults to COMPACT and throws ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes. even with innodb_large_prefix enabled.

Those who stumble across this - you can use the following setting to enforce entity creation with the dynamic fomat attribute set:

doctrine:
    dbal:
        default_table_options:
            row_format: DYNAMIC

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants