Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/odan/phinx-migrations-generator
A Migration Code Generator for Phinx
https://github.com/odan/phinx-migrations-generator
database-migrations mysql phinx phinx-migrations php
Last synced: about 1 month ago
JSON representation
A Migration Code Generator for Phinx
- Host: GitHub
- URL: https://github.com/odan/phinx-migrations-generator
- Owner: odan
- License: mit
- Created: 2016-06-16T08:40:31.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-07-12T15:59:23.000Z (4 months ago)
- Last Synced: 2024-10-01T06:05:06.393Z (about 1 month ago)
- Topics: database-migrations, mysql, phinx, phinx-migrations, php
- Language: PHP
- Homepage: https://odan.github.io/phinx-migrations-generator/
- Size: 863 KB
- Stars: 230
- Watchers: 18
- Forks: 46
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Phinx migrations generator
Generates [Phinx](https://phinx.org/) migrations by comparing your current database with your schema information.
[![Latest Version on Packagist](https://img.shields.io/github/release/odan/phinx-migrations-generator.svg)](https://packagist.org/packages/odan/phinx-migrations-generator)
[![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE.md)
[![Build Status](https://github.com/odan/phinx-migrations-generator/workflows/build/badge.svg)](https://github.com/odan/phinx-migrations-generator/actions)
[![Code Coverage](https://scrutinizer-ci.com/g/odan/phinx-migrations-generator/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/odan/phinx-migrations-generator/?branch=master)
[![Quality Score](https://scrutinizer-ci.com/g/odan/phinx-migrations-generator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/odan/phinx-migrations-generator/?branch=master)
[![Total Downloads](https://img.shields.io/packagist/dt/odan/phinx-migrations-generator.svg)](https://packagist.org/packages/odan/phinx-migrations-generator/stats)## Requirements
* PHP 8.1, 8.2
## Features
* Framework independent
* DBMS: MySQL 5.7+, MySQL 8, MariaDB (partially supported)
* Initial schema
* Schema difference
* Database: character set, collation
* Tables: create, update, remove, engine, comment, character set, collation
* Columns: create, update, remove
* Indexes: create, remove
* Foreign keys: create, remove, constraint name## Install
Via Composer
```
composer require odan/phinx-migrations-generator --dev
```## Usage
### Generating migrations
The first run generates an initial schema and a migration class.
The file `schema.php` contains the previous database schema and is compared with the current schema.
Based on the difference, a Phinx migration class is generated.```
vendor/bin/phinx-migrations generate
```When the `generate` command is executed again, only the difference to the last schema is generated.
## Parameters
Parameter | Values | Default | Description
--- | --- | --- | ---
--name | string | | The class name.
--overwrite | bool | | Overwrite schema.php file.
--path | string | (from phinx) | Specify the path in which to generate this migration.
--environment or -e | string | (from phinx) | The target environment.
--configuration or -c | string | (from phinx) | The configuration file e.g. `config/phinx.php`### Running migrations
The [Phinx migrate command](http://docs.phinx.org/en/latest/commands.html#the-migrate-command)
runs all the available migrations.```
vendor/bin/phinx migrate
```## Configuration
The phinx-migrations-generator uses the configuration of phinx.
## Migration configuration
Parameter | Values | Default | Description
--- | --- | --- | ---
foreign_keys | bool | false | Enable or disable foreign key migrations.
default_migration_prefix | string | null | If specified, in the absence of the name parameter, the default migration name will be offered with this prefix and a random hash at the end.
generate_migration_name | bool | false | If enabled, a random migration name will be generated. The user will not be prompted for a migration name anymore. The parameter `default_migration_prefix` must be specified. The `--name` parameter can overwrite this setting.
mark_generated_migration | bool | true | Enable or disable marking the migration as applied after creation.
migration_base_class | string | `\Phinx\Migration\AbstractMigration` | Sets up base class of created migration.
schema_file | string | `%%PHINX_CONFIG_DIR%%/db/` `migrations/schema.php` | Specifies the location for saving the schema file.### Example configuration
Filename: `phinx.php` (in your project root directory)
```php
PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => false,
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci',
)
);return [
'paths' => [
'migrations' => __DIR__ . '/../resources/migrations',
],
'schema_file' => __DIR__ . '/../resources/schema/schema.php',
'foreign_keys' => false,
'default_migration_prefix' => '',
'mark_generated_migration' => true,
'environments' => [
'default_environment' => 'local',
'local' => [
// Database name
'name' => $pdo->query('select database()')->fetchColumn(),
'connection' => $pdo,
]
]
];
```## Testing
```
composer test
```## Contributing
Please see [CONTRIBUTING](CONTRIBUTING.md) and [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) for details.
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.