dreadlabs / app-migration-typo3
Integrates dreadlabs/app-migration infrastructure into TYPO3.CMS.
Installs: 258
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 1
Open Issues: 1
Type:typo3-cms-extension
Requires
Requires (Dev)
- dreadlabs/typo3-dev: ~7.6.0
This package is not auto-updated.
Last update: 2020-01-24 16:00:40 UTC
README
This extension integrates the dreadlabs/app-migration
packages into a TYPO3.CMS
instance to allow application runtime migration.
Requirements
TYPO3.CMS 7.4.x or greater
Installation
~$ composer require dreadlabs/app-migration-typo3:0.1.0
Configuration
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.
Logging
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):
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.
Restrictions
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.
License
GPLv2, © 2015 Thomas Juhnke