Remove erroneus engine directive on sql scripts

Discussion in 'Feature Requests' started by Doc on the rocks, Feb 20, 2019.

  1. Doc on the rocks

    Doc on the rocks New Member

    On ISPConfig installer, every "create table" instruction comes with the engine=myisam directive.
    This is conceptually wrong, on some database ispconfig can't be installed out of the box, and many administrator are forced to do a rewrite on all .sql scripts before installing/updating.
    Here is why.
    All database servers set a default engine - if not specified. Usually a standard choice, but sometimes a "forced" choice. MS does not provide myisam storage engine, PerconaDB works better on XtraDB, GaleraDB on InnodDB, and so on. This is mostly true when working with high availability setup where replication needs transaction capable engines.
    Also databases on separate server cluster are very common (and ISPConfig allows and works perfectly if DB is not installed on "localhost").
    But, when trying to install on servers that don't provide myisam, we just raise a bunch of errors, and when succesfully installing on servers that provide myisam but not as default engine, we loose server functionalities (in the best case) or get errors (in the worst case).
    Let's make an example: MariaDB/GaleraDB server provides myisam engine, but myisam tables are not replicated, so just one copy is written. Not only we loose replication, but if ispconfig doesn't connect to the same server (load balancing, failure ip swapping, etc.) it just breaks.
    Solution:
    Remove engine=myisam from every create table instruction
    or:
    Let's allow user to choose wich engine to use during installation process.
     
    Last edited: Feb 21, 2019

Share This Page