Příručka:Háčky/LoadExtensionSchemaUpdates
LoadExtensionSchemaUpdates | |
---|---|
Dostupné od verze 1.10.1 Spustí se při aktualizaci MediaWiki, aby rozšíření umožnilo registrovat aktualizace schématu databáze | |
Definice funkce: | public static function onLoadExtensionSchemaUpdates( DatabaseUpdater $updater ) { ... }
|
Registrace háčku: | V extension.json:
{
"Hooks": {
"LoadExtensionSchemaUpdates": "MediaWiki\\Extension\\MyExtension\\Hooks::onLoadExtensionSchemaUpdates"
}
}
|
Volá se z: | Soubor/y: installer/DatabaseUpdater.php Funkce: __construct |
Rozhraní: | LoadExtensionSchemaUpdatesHook.php |
Další informace o háčcích najdete na stránce Příručka:Háčky .
Chcete-li vědět, jaká rozšíření tento háček používají, podívejte se na stránku Category:LoadExtensionSchemaUpdates extensions/cs.
Použití
Pokud vaše rozšíření vyžaduje změny v databázi při aktualizaci MediaWiki, použijte tento háček k jejich přidání do aktualizátoru pomocí metod jako
DatabaseUpdater::addExtensionTable()
, DatabaseUpdater::modifyExtensionField()
atd.
Shrnutí
- Vytvořte háček, jak je uvedeno níže. Příklad ukazuje, jak nastavit funkci zaháčkování. Pokud máte více než jednu aktualizaci schématu, můžete je umístit do stejné funkce. Ujistěte se, že používáte metody s Extension v názvu k registraci aktualizací, spíše než že je spouštíte přímo.
- Ujistěte se, že má háček přístup ke všem potřebným souborům SQL, které jsou obvykle umístěny v adresáři
sql/
. - Správně naformátujte SQL soubory. Pro některé příklady se podívejte na ArticleFeedbackv5 SQL a odpovídající hooks file.
- Z příkazového řádku spusťte skript
php maintenance/update.php
pro aktualizaci databáze vaší wiki pomocí háčkuLoadExtensionSchemaUpdates
vašeho rozšíření. Další informace naleznete v příručce update.php .
>= 1.25
Registrace rozšíření byla zavedena v MW 1.25, a proto by se místo $wgHooks měla používat sekce háčků extension.json
.
Například:
"Hooks": {
"LoadExtensionSchemaUpdates": "MediaWiki\\Extension\\ExtensionName\\Hooks::onLoadExtensionSchemaUpdates"
}
A v ExtensionName/includes/Hooks.php
:
namespace MediaWiki\Extension\ExtensionName;
use DatabaseUpdater;
class Hooks {
public static function onLoadExtensionSchemaUpdates( DatabaseUpdater $updater ) {
// Zaregistrujte opravu SQL pro změnu pole
$updater->modifyExtensionField(
'tablename',
'name_of_field',
__DIR__ . '/sql/patch_file_changing_field.sql'
);
}
}
Kód zpětného volání zavěšení je stejný jako u předchozích verzí (viz níže).
Související odkazy
- Manual:Hooks/ParserTestTables – Tento háček může být také nezbytný, pokud vaše rozšíření mění chování analyzátoru (funkce analyzátoru, háčky značek atd.)
- Manual:SQL patch file
- vygenerovaná dokumentace třídy MediaWiki\Installer\DatabaseUpdater