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
.
$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
.
$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
.
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):
paths:
migrations: %%PHINX_CONFIG_DIR%%/migrations
environments:
default_migration_table: phinxlog
# The naming is a bit unfortunate: it means default `environment`
default_database: default
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.
Migrations are currently not working if ext:dbal
is loaded.
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