You are here

private function InstapageCmsPluginDBModel::updateDB in Instapage plugin 8.3

Same name and namespace in other branches
  1. 7.3 core/models/InstapageCmsPluginDBModel.php \InstapageCmsPluginDBModel::updateDB()

Check current DB structure version and updates it if necessary.

1 call to InstapageCmsPluginDBModel::updateDB()
InstapageCmsPluginDBModel::initPluginTables in core/models/InstapageCmsPluginDBModel.php
Initiates Instapage plugin's DB structure.

File

core/models/InstapageCmsPluginDBModel.php, line 205

Class

InstapageCmsPluginDBModel
Class responsible for communication with DB.

Code

private function updateDB() {
  $db_version = intval(InstapageCmsPluginHelper::getMetadata('db_version', 0), 10);
  if ($db_version < 300000010) {
    InstapageCmsPluginHelper::writeDiagnostics($db_version, 'Current db version. Doing update.');
    $sql = 'SHOW COLUMNS FROM ' . $this->optionsTable . ' LIKE %s';
    $metadata_exists = $this
      ->getRow($sql, 'metadata');
    $sql = 'SHOW COLUMNS FROM ' . $this->pagesTable . ' LIKE %s';
    $enterprise_url_exists = $this
      ->getRow($sql, 'enterprise_url');
    if (!$metadata_exists) {
      $sql = sprintf('ALTER TABLE %s ADD metadata TEXT NULL', $this->optionsTable);
      $this
        ->query($sql);
    }
    if (!$enterprise_url_exists) {
      $sql = sprintf('ALTER TABLE %s ADD enterprise_url VARCHAR(255) DEFAULT \'\' NOT NULL', $this->pagesTable);
      $this
        ->query($sql);
    }
    $sql = sprintf('ALTER TABLE %s MODIFY api_keys TEXT NULL', $this->optionsTable);
    $this
      ->query($sql);
    $sql = sprintf('ALTER TABLE %s MODIFY config TEXT NULL', $this->optionsTable);
    $this
      ->query($sql);
    $sql = sprintf('ALTER TABLE %s MODIFY slug VARCHAR(255) DEFAULT \'\' NOT NULL', $this->pagesTable);
    $this
      ->query($sql);
    $sql = sprintf('ALTER TABLE %s MODIFY time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL', $this->pagesTable);
    $this
      ->query($sql);
    $sql = sprintf('ALTER TABLE %s MODIFY time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL', $this->debugTable);
    $this
      ->query($sql);
    InstapageCmsPluginHelper::updateMetadata('db_version', 300000010);
  }
}