Skip to content

Hint: Speed up imports to BlueSpice #210

Description

@osnard

When importing the migration result in an existing BlueSpice installation, the process might be slow, due to the number of enabled extensions. To improve this, one can perform the import on a "modified version" of BlueSpice.

If you are using the official bluespice-deploy stack, this can be done by creating a dedicated compose/docker-compose.override.yml file like this:

services:

  wiki-importer:
    image: ${BLUESPICE_WIKI_IMAGE}
    container_name: ${COMPOSE_PROJECT_NAME:-bluespice}-wiki-importer
    environment:
      <<: *common-environment
    command: start-web
    volumes:
      - ${DATADIR}/wiki:/data
      - /tmp/LocalSettings.BlueSpice-MINI.php:/app/bluespice/w/LocalSettings.BlueSpice.php
    secrets: *common-secrets

With a /tmp/LocalSettings.BlueSpice-MINI.php like this:

<?php
wfLoadSkin( 'Vector' );
$wgDefaultSkin = 'vector';
wfLoadExtension( 'OOJSPlus' );
wfLoadExtension( 'SimpleBlogPage' );
wfLoadExtension( 'CommentStreams' );
wfLoadExtension( 'TemplateStyles');
wfLoadExtension( 'ParserFunctions');
wfLoadExtension( 'DateTimeTools');
wfLoadExtension( 'Checklists');
wfLoadExtension( 'SimpleTasks');
wfLoadExtension( 'EnhancedUploads');
wfLoadExtension( 'HeaderTabs');
wfLoadExtension( 'SubPageList');
wfLoadExtension( 'TableTools');

One can then import the migration result from the new wiki-importer container. It can be removed from the stack afterwards. The regular wiki-web and wiki-task containers should be turned off during the import.

Be aware that, as extensions like SemanticMediaWiki and BlueSpiceExtendedSearch are disabled during import, their respective datasources may need to be rebuild manually after the import. E.g. with extensions/SemanticMediaWiki/maintenance/rebuildData.php or extensions/BlueSpiceExtendedSearch/maintenance/rebuildIndex.php

Activity

  1. osnard commented on Apr 22, 2026

    @osnard
    MemberAuthor
    wfLoadExtension( 'TemplateStyles');
    

    is also required

  2. danielriedmueller commented on Apr 23, 2026

    @danielriedmueller
    Contributor

    Consider use --no-updates option

    		$this->addOption(
    			'no-updates',
    			'Disable link table updates. Is faster but leaves the wiki in an inconsistent state'
    		);
    

    with skeleton setup and no updates option (149.04 pages/sec 149.04 revs/sec)
    without skeleton setup and no updates option (149.04 pages/sec 121.78 revs/sec)

  3. danielriedmueller commented on Apr 23, 2026

    @danielriedmueller
    Contributor

    PHP Fatal error: Uncaught MediaWiki\Registration\ExtensionDependencyError: SimpleTasks requires AtMentions to be installed.

    PHP Fatal error: Uncaught MediaWiki\Registration\ExtensionDependencyError: TableTools requires VueJsPlus to be installed.

    PHP Fatal error: Uncaught MediaWiki\Registration\ExtensionDependencyError: TableTools requires VisualEditor to be installed.

    wfLoadExtension( 'AtMentions');
    wfLoadExtension( 'VisualEditor');
    wfLoadExtension( 'VueJsPlus');

    are also required apparently

  4. danielriedmueller commented on Apr 23, 2026

    @danielriedmueller
    Contributor

    Would be awesome to have in the end a service which automatically

    • create needed namespaces
    • import pages
    • import comments
    • import files
  5. danielriedmueller commented on Apr 23, 2026

    @danielriedmueller
    Contributor

    WikiFarm requires
    wfLoadExtension( 'BlueSpiceFoundation');

    and
    wfLoadExtension( 'BlueSpiceNamespaceManager');

  6. Boldewyn commented on Jun 16, 2026

    @Boldewyn
    Contributor

    In principle we’ve got most information in the SQLite file. Just brainstorming a bit, but we could add a new sub-command

    createImportScript --edition=free
    

    that would fetch the information and bundle it into a ready-to-use import script:

    • create a minimal settings file and reference it in the following commands
    • set up namespace via BlueSpiceNamespaceManager/maintenance/ImportNamespaces.php or so
    • create new users
    • use correct file import (BlueSpiceDiscoveryConnector/maintenance/importFiles.php)
    • import all necessary *.xml files in the correct order
    • ...?
    • remove settings file again
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions