Migrations Builder for Phinx.
Currently Phinx (a migration library) cannot generate migrations automatically. Phinx "only" generates a empty class with up and down functions. You still have to write the migration manually.
In reality, you should rarely need to write migrations manually, as the migrations library "should" generate migration classes automatically by comparing your schema mapping information (i.e. what your database should look like) with your actual current database structure.
Generated migration
THIS IS A DEVELOPMENT PREVIEW - DO NOT USE IT IN PRODUCTION!
- Framework independent
- DBMS: MySQL
- Database: character set, collation
- Tables: create, update, remove, engine, comment, character set, collation
- Columns: create, update, remove
- Indexes: create, remove
- Foreign keys (experimental): create, remove
- MySQL [double] is not supported by phinx cakephp/phinx#498
- MySQL [year] is not supported by phinx. cakephp/phinx#704 | cakephp/phinx#551
- MySQL [bit] is not supported by phinx. cakephp/phinx#778
- MySQL enum values with special characters: cakephp/phinx#887
- Migration of contraint names (currently only auto generated): cakephp/phinx#823
- MySQL comments with special characters.
git clone https://github.com/odan/migrations.git
cd migrations
composer install --no-dev
composer require odan/migrations
- Default configuration file: migrations-config.php
Example:
<?php
return array(
'dsn' => 'mysql:host=127.0.0.1;dbname=test',
'username' => 'root',
'password' => '',
'options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
),
'schema_file' => __DIR__ . '/schema.php',
'migration_path' => __DIR__
);
Name | Type | Default | Description |
---|---|---|---|
dsn | string | Data source name (mysql:host=127.0.0.1;dbname=test) | |
username | string | Database username | |
password | string | Database password | |
options | array | Database options | |
schema_file | string | schema.php | Database schema file (schema.php or schema.json) |
migration_path | string | Output directory for migration files |
cd bin
php migrations.php migration:generate
php migrations.php migration:generate --config=myconfig.php