Исходный код вики XWiki Database Indexes Check
Редактировал(а) Dmitriy Rybakov 05.08.2025, 13:07
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | {{velocity}} | ||
| 2 | |||
| 3 | #set($indexesDocument = "Admin.CheckIndexesSQL") | ||
| 4 | |||
| 5 | {{info}}This script reads from the page $indexesDocument and only reports not found indexes.{{/info}} | ||
| 6 | |||
| 7 | #if($hasProgramming) | ||
| 8 | #set($sqlTools = $xwiki.parseGroovyFromPage('Admin.SQLToolsGroovy')) | ||
| 9 | #set($system = $sqlTools.getXWikiDatabaseSystemFromDatabaseMetadata($xcontext)) | ||
| 10 | Your database is: **$system** | ||
| 11 | #if($system == "HSQL Database Engine") | ||
| 12 | {{warning}}$system is not supported for this action{{/warning}} | ||
| 13 | #end | ||
| 14 | |||
| 15 | #if($services.wikimanager) | ||
| 16 | #set($dbs = $services.wikimanager.getAllWikis()) | ||
| 17 | #else | ||
| 18 | #set($dbs = ["$xcontext.getDatabase()"]) | ||
| 19 | #end | ||
| 20 | |||
| 21 | #set($indexes = $xwiki.getDocument($indexesDocument).getContent()) | ||
| 22 | |||
| 23 | #foreach($wiki in $dbs) | ||
| 24 | == Working on wiki $wiki == | ||
| 25 | #foreach($line in $indexes.split('\n')) | ||
| 26 | #set($arrayline = $line.split(':')) | ||
| 27 | #set($tab=$arrayline[0].trim()) | ||
| 28 | #set($key=$arrayline[1].trim().toUpperCase()) | ||
| 29 | #set($col=$arrayline[2].trim().toUpperCase()) | ||
| 30 | #set($query = "show index from $tab from $wiki where key_name='$key';") | ||
| 31 | #set($connection = $sqlTools.getXWikiConnection($xwiki, $xcontext)) | ||
| 32 | #set($results = $sqlTools.getResults($connection, $query, false)) | ||
| 33 | ## We only list this index if it's there | ||
| 34 | #if(! $results.contains($tab)) | ||
| 35 | * Index $key on column $col from table $tab doesn't exist! | ||
| 36 | #end | ||
| 37 | #end | ||
| 38 | #end | ||
| 39 | #end | ||
| 40 | {{/velocity}} |