This package is abandoned and no longer maintained. No replacement package was suggested.

Integrates dreadlabs/app-migration infrastructure into TYPO3.CMS.

Installs: 257

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 1

Open Issues: 1


0.1.5 2016-12-06 15:01 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:00:40 UTC


This extension integrates the dreadlabs/app-migration packages into a TYPO3.CMS instance to allow application runtime migration.


TYPO3.CMS 7.4.x or greater


~$ composer require dreadlabs/app-migration-typo3:0.1.0


Create a file .migrationrc in the TYPO3.CMS project root directory. The syntax corresponds to the one used in php.ini. Its content gets parsed by parse_ini_string and therefore can contain constants which will be resolved automatically. This is an example configuration with the default values:

config_file_path = PATH_site"phinx.yml"
migration_path = PATH_site"migrations/"
lock_path = PATH_site"typo3temp/"

Hint: Ensure your webserver setup blocks access to / delivery of dotfiles.


By default, logging will use FileWriter to log all migration-related stuff into typo3temp/logs/migration.log. The default log level is EMERGENCY.

If you want to override, disable or re-configure the logging, you must put the necessary configuration either into the ext_localconf.php of a dedicated extension or simply into typo3conf/AdditionalConfiguration.php.

Example #1: Increase log level sensitivity to "info"

$GLOBALS['TYPO3_CONF_VARS']['LOG']['DreadLabs']['AppMigrationTypo3']['Domain']['Logger']['writerConfiguration'] = array(
    \TYPO3\CMS\Core\Log\LogLevel::INFO => array(
        \TYPO3\CMS\Core\Log\Writer\FileWriter::class => array(
            'logFile' => 'typo3temp/logs/migration.log',

Note the additional Logger array key before writerConfiguration.

Example #2: Mute logging with NullWriter

$GLOBALS['TYPO3_CONF_VARS']['LOG']['DreadLabs']['AppMigrationTypo3']['Domain']['Logger']['writerConfiguration'] = array(
    \TYPO3\CMS\Core\Log\LogLevel::EMERGENCY => array(
        \TYPO3\CMS\Core\Log\Writer\NullWriter::class => array(

Note the additional Logger array key before writerConfiguration.

Migration low-level API

Currently, the migrator adapter dreadlabs/app-migration-migrator-phinx is used. This library come with a CLI out-of-the-box. In order to use the CLI you also have to create a phinx.yml configuration file in your project's root directory (PATH_site in a default TYPO3.CMS instance):

    migrations: %%PHINX_CONFIG_DIR%%/migrations

    default_migration_table: phinxlog

    # The naming is a bit unfortunate: it means default `environment`
    default_database: default

        adapter: mysql
        host: localhost
        name: DB_NAME
        user: DB_USERNAME
        pass: DB_PASSWORD
        port: DB_PORT
        charset: utf8

Please read the Phinx Documentation for more information.


Not ext:dbal ready

Migrations are currently not working if ext:dbal is loaded.

TYPO3.CMS early implementation registration

Classes instantiated in TYPO3.CMS are currently not managed by the Extbase Dependency Injection Container. While ext:extbase provides a good example how to early-register concrete implementations in its ext_localconf.php its also state as NO PUBLIC API.

While this is working currently perfectly fine, please note that the used approach may be subject to change in the future.


GPLv2, © 2015 Thomas Juhnke