https://github.com/cycle/migrations
Automatic migration generation
https://github.com/cycle/migrations
cycle hacktoberfest migrations orm php
Last synced: about 2 months ago
JSON representation
Automatic migration generation
- Host: GitHub
- URL: https://github.com/cycle/migrations
- Owner: cycle
- License: mit
- Created: 2019-02-26T13:56:44.000Z (over 6 years ago)
- Default Branch: 4.x
- Last Pushed: 2025-07-12T13:45:24.000Z (4 months ago)
- Last Synced: 2025-07-12T15:32:28.075Z (4 months ago)
- Topics: cycle, hacktoberfest, migrations, orm, php
- Language: PHP
- Homepage:
- Size: 420 KB
- Stars: 21
- Watchers: 4
- Forks: 16
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Cycle Database Migrations
[](https://packagist.org/packages/cycle/migrations)
[](https://github.com/cycle/migrations/actions)
[](https://scrutinizer-ci.com/g/cycle/migrations/?branch=4.x)
[](https://codecov.io/gh/cycle/migrations/)
Migrations are a convenient way for you to alter your database in a structured and organized manner. This package adds
additional functionality for versioning your database schema and easily deploying changes to it. It is a very easy to
use and a powerful tool.
## Installation
```bash
composer require cycle/migrations ^4.0
```
## Configuration
```php
use Cycle\Migrations;
use Cycle\Database;
use Cycle\Database\Config;
$dbal = new Database\DatabaseManager(new Config\DatabaseConfig([
'default' => 'default',
'databases' => [
'default' => [
'connection' => 'sqlite'
]
],
'connections' => [
'sqlite' => new Config\SQLiteDriverConfig(
connection: new Config\SQLite\MemoryConnectionConfig(),
queryCache: true,
),
]
]));
$config = new Migrations\Config\MigrationConfig([
'directory' => __DIR__ . '/../migrations/', // where to store migrations
'vendorDirectories' => [ // Where to look for vendor package migrations
__DIR__ . '/../vendor/vendorName/packageName/migrations/'
],
'table' => 'migrations' // database table to store migration status
'safe' => true // When set to true no confirmation will be requested on migration run.
]);
$migrator = new Migrations\Migrator(
$config,
$dbal,
new Migrations\FileRepository($config)
);
// Init migration table
$migrator->configure();
```
## Running
```php
while (($migration = $migrator->run()) !== null) {
echo 'Migrate ' . $migration->getState()->getName();
}
```
## Generate Migrations
You can automatically generate a set of migration files during schema compilation. In this case, you have the freedom to
alter such migrations manually before running them. To achieve that you must install
the [Schema migrations generator extension](https://github.com/cycle/schema-migrations-generator).
## License:
MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained
by [Spiral Scout](https://spiralscout.com).