Topic on Extension talk:Scribunto

Uninstalling Scribunto

7
68.49.56.122 (talkcontribs)

Hello,

I'm managing a wiki that had the Scribunto extension installed for some time but really wasn't used much except on a couple of test pages. I'm upgrading the wiki now (from 1.28 to 1.31) and have removed the Scribunto extension. However, when I run the scripts to populate the CirrusSearch index, I get the following traceback:

<code>

[7c132a3761cb626266d8cab6] [no req]   MWUnknownContentModelException from line 306 of /var/www/html/mediawiki-1.31.0/includes/content/ContentHandler.php: The content model 'Scribunto' is not registered on this wiki.

See https://www.mediawiki.org/wiki/Content_handlers to find out which extensions handle this content model.

Backtrace:

#0 /var/www/html/mediawiki-1.31.0/includes/content/ContentHandler.php(243): ContentHandler::getForModelID(string)

#1 /var/www/html/mediawiki-1.31.0/includes/Title.php(4984): ContentHandler::getForTitle(Title)

#2 /var/www/html/mediawiki-1.31.0/includes/parser/Parser.php(892): Title->getPageLanguage()

#3 /var/www/html/mediawiki-1.31.0/includes/parser/Parser.php(2126): Parser->getTargetLanguage()

#4 /var/www/html/mediawiki-1.31.0/includes/parser/Parser.php(2091): Parser->replaceInternalLinks2(string)

#5 /var/www/html/mediawiki-1.31.0/includes/parser/Parser.php(1318): Parser->replaceInternalLinks(string)

#6 /var/www/html/mediawiki-1.31.0/includes/parser/Parser.php(443): Parser->internalParse(string)

#7 /var/www/html/mediawiki-1.31.0/includes/content/WikitextContent.php(323): Parser->parse(string, Title, ParserOptions, boolean, boolean, integer)

#8 /var/www/html/mediawiki-1.31.0/includes/content/AbstractContent.php(516): WikitextContent->fillParserOutput(Title, integer, ParserOptions, boolean, ParserOutput)

#9 /var/www/html/mediawiki-1.31.0/includes/content/ContentHandler.php(1324): AbstractContent->getParserOutput(Title, integer, ParserOptions)

#10 /var/www/html/mediawiki-1.31.0/extensions/CirrusSearch/includes/Updater.php(363): ContentHandler->getParserOutputForIndexing(WikiPage, ParserCache)

#11 /var/www/html/mediawiki-1.31.0/extensions/CirrusSearch/includes/Updater.php(204): CirrusSearch\Updater->buildDocumentsForPages(array, integer)

#12 /var/www/html/mediawiki-1.31.0/extensions/CirrusSearch/maintenance/forceSearchIndex.php(218): CirrusSearch\Updater->updatePages(array, integer)

#13 /var/www/html/mediawiki-1.31.0/maintenance/doMaintenance.php(94): CirrusSearch\ForceSearchIndex->execute()

#14 /var/www/html/mediawiki-1.31.0/extensions/CirrusSearch/maintenance/forceSearchIndex.php(679): require_once(string)

#15 {main}

</code>

I found a few phabricator tickets that appear to be related but haven't yet found a workaround beyond reinstalling the Scribunto extension. Is there one? Is there a way to remove the Scribunto content model and/or references to it?

68.49.56.122 (talkcontribs)

Additionally, I thought if I did an XML dump of all pages and revisions I would find a page using "<model>Scribunto</model>" but I don't seem to have any pages with that.

2620:11E:1000:120:1792:B56B:4655:6029 (talkcontribs)

Okay, I think I got it fixed. It turns out that if pages exist in the database in a namespace that mediawiki doesn't know about, there is no way to display them and they don't show up in an XML export either. I was able to reset the page content model of the single interfering page in the database like so:

UPDATE page SET page_content_model = 'wikitext' WHERE page_content_model = 'Scribunto';

217.236.248.190 (talkcontribs)

You are my hero; just had the exact same problem. Thank you _very_ much for posting the problem and the solution. I've never installed or run Scribunto, so never occurred to me to check for it.

#GrayanOne

86.165.83.48 (talkcontribs)

Thanks for this!! I also had to run UPDATE content SET content_model = 1 WHERE content_model = 11 and delete the Scribunto row from the content_model table before the error would go away.

Tenbergen (talkcontribs)

Two small things...

  • I think I use a default install of mediawiki, and the table names are prefixed with "mw_", so I had to modify the two queries accordingly.
  • * for me the content_model was "3", not "11", so I suspect that is variable depending on what else is installed on your wiki.

Here is what I had to do:

  • Run the following to get the content mode ID:
    • SELECT * FROM mw_content_models WHERE model_name = 'Scribunto';
    • note the model_id and use it in the next SQL queries
  • Delete the Scribunto line from content model
    • DELETE FROM mw_content_models WHERE model_name = 'Scribunto';
  • Replace all lines in content where content model was ID of Scribunto with ID of wikitext
    • UPDATE mw_content SET content_model = 1 WHERE content_model = <the id you retrieved in the first query>
  • Replace all lines with Scribunto in the page table with wikitext
    • UPDATE mw_page SET page_content_model = 'wikitext' WHERE page_content_model = 'Scribunto';

I have added this to a section "Uninstalling Scribunto" on the extension page, so if you find corrections, please update there as well.

Kolept (talkcontribs)

Do you know what is the impact of uninstalling Scribunto? It came out of the box and it is slow. Do you know about how to install luasandbox to improve performance?

Reply to "Uninstalling Scribunto"