Phinx recipe
Installing
Install with composer
composer require deployer/recipes --devAdd to your deploy.php
require 'recipe/phinx.php';Configuration options
All options are in the config parameter phinx specified as an array (instead of the phinx_path variable).
All parameters are optional, but you can specify them with a dictionary (to change all parameters)
or by deployer dot notation (to change one option).
Phinx params
phinx.environmentphinx.datephinx.configurationN.B. current directory is the project directoryphinx.targetphinx.seedphinx.parserphinx.remove-all(pass empty string as value)
Phinx path params
phinx_pathSpecify phinx path (by default phinx is searched for in $PATH, ./vendor/bin and ~/.composer/vendor/bin)
Example of usage
$phinx_env_vars = [
'environment' => 'development',
'configuration' => './migration/.phinx.yml'
'target' => '20120103083322',
'remove-all' => ''
];
set('phinx_path', '/usr/local/phinx/bin/phinx');
set('phinx', $phinx_env_vars);
after('cleanup', 'phinx:migrate');
// or set it for a specific server
host('dev')
->user('user')
->set('deploy_path', '/var/www')
->set('phinx', $phinx_env_vars)
->set('phinx_path', '');Tasks
phinx:migrateMigrate your databasephinx:rollbackRollback your databasephinx:seedRun seeds for your databasephinx:breakpointSet a breakpoint for your database (note that breakpoints are toggled on/off automatically by Phinx, so you will need to call this command once with theremove-alloption, then delete theremove-alloption from the recipe configuration and re-runphinx:breakpointto set the breakpoint to the current migration)
Suggested Usage
You can run all tasks before or after any
tasks (but you need to specify external configs for phinx).
If you use internal configs (which are in your project) you need
to run it after the deploy:update_code task is completed.
Read more
For further reading see phinx.org. Complete descriptions of all possible options can be found on the commands page.