mediawiki-extensions-Linter/includes/SchemaHooks.php
Isabelle Hurbain-Palatin 165354ab91 Wire migration scripts to SchemaHooks
Add MigrateNamespace and MigrateTagTemplate as post database update
maintenance operations.

Bug: T367207
Change-Id: I7676f9ce4bef59febc463d897cb26d47347a3968
2024-10-10 13:52:30 +02:00

55 lines
1.9 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
*/
namespace MediaWiki\Linter;
use MediaWiki\Installer\DatabaseUpdater;
use MediaWiki\Installer\Hook\LoadExtensionSchemaUpdatesHook;
use MediaWiki\Linter\Maintenance\MigrateNamespace;
use MediaWiki\Linter\Maintenance\MigrateTagTemplate;
class SchemaHooks implements LoadExtensionSchemaUpdatesHook {
/**
* @param DatabaseUpdater $updater
*/
public function onLoadExtensionSchemaUpdates( $updater ) {
$dbType = $updater->getDB()->getType();
$dir = dirname( __DIR__ );
$updater->addExtensionTable( 'linter',
"{$dir}/sql/{$dbType}/tables-generated.sql"
);
// 1.38
$updater->addExtensionField( 'linter', 'linter_namespace',
"{$dir}/sql/{$dbType}/patch-linter-add-namespace.sql"
);
// 1.38
$updater->addExtensionField( 'linter', 'linter_template',
"{$dir}/sql/{$dbType}/patch-linter-template-tag-fields.sql"
);
// 1.40
$updater->modifyExtensionField( 'linter', 'linter_params',
"{$dir}/sql/{$dbType}/patch-linter-fix-params-null-definition.sql"
);
// 1.43
$updater->addPostDatabaseUpdateMaintenance( MigrateNamespace::class );
$updater->addPostDatabaseUpdateMaintenance( MigrateTagTemplate::class );
}
}