Hi there!
We can't change the default storage engine, on our server. Is there a way installing confluence on such a system? Why don't you use the engine-parameter in your SQL-commands to specify the engine, like this?
CREATE TABLE IF NOT EXISTS tasks ( task_id INT(11) NOT NULL AUTO_INCREMENT, subject VARCHAR(45) DEFAULT NULL, start_date DATE DEFAULT NULL, end_date DATE DEFAULT NULL, description VARCHAR(200) DEFAULT NULL, PRIMARY KEY (task_id)) ENGINE=InnoDB
Best,
Dirk
Since MySQL 5.5.5, the default storage engine is InnoDB, and would not need to be changed. Confluence only supports MySQL 5.6 and 5.7 since we shipped Confluence 6.0 in November 2016.
For why we don't set the storage engine during schema creation: Confluence uses Hibernate to issue schema creation DDL, which in v2 did not have the flexibility to append engine options to its generated SQL when we began using it. Now that we've upgraded schema creation to be managed by Hibernate v5, we could upgrade to Hibernate 5.2.9 or higher, and migrate from using a direct subclass of org.hibernate.dialect.MySQLDialect to using something derived from org.hibernate.dialect.MySQL55Dialect or org.hibernate.dialect.MySQL57Dialect to direct Hibernate to emit the ENGINE=InnoDB string you describe. Doing this will require code changes within Confluence, and could require an upgrade task to migrate existing data between Dialects to account for other changes in preferred data types. I've raised CONFSERVER-55541 - Improve MySQL schema creation to always specify InnoDB storage engine to track this suggestion.
References:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.