Users running a non-download version of Vanilla (pulled from github), on branch release/2019.016 or master from the last 2 weeks should upgrade to release/2019.017 or latest master for security reasons. Downloaded official open sources releases are not affected.

Trying to use Google CloudSQL

So i am trying to setup Vanilla in Google CloudSQL and when I do a new install it says

"Storage engine MyISAM is disabled (Table creation is disallowed)." this is on the setup screen.

Is there a way I can use this and turn this feature on or is there a reason why Vanilla needs to use this table structure? Any ideas?

Comments

  • I can see that the file package\library\database\class.mysqlstructure.php has this line.

    Line 291:         $this->_TableStorageEngine = c('Database.DefaultStorageEngine', 'innodb');

    would it be okay to change this to "MyISAM"

  • R_JR_J Cheerleader & Troubleshooter Munich Moderator

    Some insights here

    Try this config

    Database.ForceStorageEngine


  • Sorry I was looking for the opposite issue

    I can see that the file package\library\database\class.mysqlstructure.php has this line. What is this chunk of code looking for exactly?

        // Check to see if there are any fulltext columns, otherwise use innodb.
        if (!$this->_TableStorageEngine) {
          $hasFulltext = false;
          foreach ($this->_Columns as $column) {
            $columnKeyTypes = (array)$column->KeyType;
            array_map('strtolower', $columnKeyTypes);
            if (in_array('fulltext', $columnKeyTypes)) {
              $hasFulltext = true;
              break;
            }
          }
          if ($hasFulltext) {
            $this->_TableStorageEngine = 'myisam';
          } else {
            $this->_TableStorageEngine = c('Database.DefaultStorageEngine', 'innodb');
          }
    
          if (!$this->hasEngine($this->_TableStorageEngine)) {
            $this->_TableStorageEngine = 'myisam';
          }
        }
    
  • So i replaced the two statements

    $this->_TableStorageEngine = 'myisam';
    

    with

    $this->_TableStorageEngine = c('Database.DefaultStorageEngine', 'innodb');
    

    and I got the forum to install fine but since everything I am reading says that innob can support what needs to be done why is Vanilla Forums still using myisam?

  • R_JR_J Cheerleader & Troubleshooter Munich Moderator

    The link I've posted above shows the issues in GitHub that deal with moving away from the MyISAM requirement. I'm not sure what happened with that issue. Since the code you have cited above is still there, the issue obviously hasn't been resolved by now :-(


  • R_JR_J Cheerleader & Troubleshooter Munich Moderator

    I've just seen that this code is no more in the current master branch. So the next Vanilla version will not have any need for MyISAM any more.


  • Thanks @R_J

Sign In or Register to comment.