From 81ab7ee3e9dbff7fcea08e6f92750b89808c1028 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Wed, 16 Mar 2022 10:31:05 -0400 Subject: [PATCH] Add utils for managing schema to extension upgrader base class --- CRM/Extension/Upgrader/Base.php | 1 + CRM/Extension/Upgrader/SchemaTrait.php | 75 ++++++++++++++++++++++++++ ext/search_kit/CRM/Search/Upgrader.php | 19 ------- 3 files changed, 76 insertions(+), 19 deletions(-) create mode 100644 CRM/Extension/Upgrader/SchemaTrait.php diff --git a/CRM/Extension/Upgrader/Base.php b/CRM/Extension/Upgrader/Base.php index 2e56e33e97..3dbd1eb069 100644 --- a/CRM/Extension/Upgrader/Base.php +++ b/CRM/Extension/Upgrader/Base.php @@ -23,6 +23,7 @@ class CRM_Extension_Upgrader_Base implements CRM_Extension_Upgrader_Interface { use CRM_Extension_Upgrader_QueueTrait; use CRM_Extension_Upgrader_RevisionsTrait; use CRM_Extension_Upgrader_TasksTrait; + use CRM_Extension_Upgrader_SchemaTrait; /** * {@inheritDoc} diff --git a/CRM/Extension/Upgrader/SchemaTrait.php b/CRM/Extension/Upgrader/SchemaTrait.php new file mode 100644 index 0000000000..14cdb94008 --- /dev/null +++ b/CRM/Extension/Upgrader/SchemaTrait.php @@ -0,0 +1,75 @@ + (array) $columns]; + CRM_Core_BAO_SchemaHandler::createIndexes($tables, $prefix); + return TRUE; + } + + /** + * Drop index from a table if it exists. + * + * @param string $table + * @param string $indexName + * @return bool + */ + public static function dropIndex($table, $indexName) { + CRM_Core_BAO_SchemaHandler::dropIndexIfExists($table, $indexName); + return TRUE; + } + +} diff --git a/ext/search_kit/CRM/Search/Upgrader.php b/ext/search_kit/CRM/Search/Upgrader.php index c1a3f55aab..98fbc009b8 100644 --- a/ext/search_kit/CRM/Search/Upgrader.php +++ b/ext/search_kit/CRM/Search/Upgrader.php @@ -189,23 +189,4 @@ class CRM_Search_Upgrader extends CRM_Search_Upgrader_Base { return TRUE; } - /** - * Add a column to a table if it doesn't already exist - * - * FIXME: Move to a shared class, delegate to CRM_Upgrade_Incremental_Base::addColumn - * - * @param string $table - * @param string $column - * @param string $properties - * - * @return bool - */ - public static function addColumn($table, $column, $properties) { - if (!CRM_Core_BAO_SchemaHandler::checkIfFieldExists($table, $column, FALSE)) { - $query = "ALTER TABLE `$table` ADD COLUMN `$column` $properties"; - CRM_Core_DAO::executeQuery($query, [], TRUE, NULL, FALSE, FALSE); - } - return TRUE; - } - } -- 2.25.1