/** * @param DatabaseUpdater $updater * @return bool */ public static function addSchemaUpdates(DatabaseUpdater $updater) { $base = dirname(__FILE__); if ($updater->getDB()->getType() == 'mysql') { $base = "{$base}/mysql"; $updater->addExtensionTable('account_requests', "{$base}/ConfirmAccount.sql"); $updater->addExtensionField('account_requests', 'acr_filename', "{$base}/patch-acr_filename.sql"); $updater->addExtensionTable('account_credentials', "{$base}/patch-account_credentials.sql"); $updater->addExtensionField('account_requests', 'acr_areas', "{$base}/patch-acr_areas.sql"); $updater->modifyExtensionField('account_requests', 'acr_email', "{$base}/patch-alter-acr_email-index.sql"); $updater->addExtensionIndex('account_requests', 'acr_email', "{$base}/patch-email-index.sql"); $updater->addExtensionField('account_requests', 'acr_agent', "{$base}/patch-acr_agent.sql"); $updater->dropExtensionIndex('account_requests', 'acr_deleted_reg', "{$base}/patch-drop-acr_deleted_reg-index.sql"); } elseif ($updater->getDB()->getType() == 'postgres') { $base = "{$base}/postgres"; $updater->addExtensionUpdate(array('addTable', 'account_requests', "{$base}/ConfirmAccount.pg.sql", true)); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_held', "TIMESTAMPTZ")); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_filename', "TEXT")); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_storage_key', "TEXT")); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_comment', "TEXT NOT NULL DEFAULT ''")); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_type', "INTEGER NOT NULL DEFAULT 0")); $updater->addExtensionUpdate(array('addTable', 'account_credentials', "{$base}/patch-account_credentials.sql", true)); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_areas', "TEXT")); $updater->addExtensionUpdate(array('addPgField', 'account_credentials', 'acd_areas', "TEXT")); $updater->addExtensionUpdate(array('addIndex', 'account_requests', 'acr_email', "{$base}/patch-email-index.sql", true)); $updater->addExtensionUpdate(array('addPgField', 'account_requests', 'acr_agent', "{$base}/patch-acr_agent.sql", true)); } return true; }