haoa / migration
Lightweight versioned database migrations for Haoa projects
v1.0.0
2026-09-30 09:41 UTC
Requires
- php: >=7.2
- ext-pdo: *
- haoa/cli: ^1.0
- haoa/mix-database: ^2.0
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.6 || ^10.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-01 08:03:50 UTC
README
基于 haoa/cli 和 haoa/mix-database 的轻量数据库迁移库,支持 MySQL 和 PostgreSQL。
安装
composer require haoa/migration
项目配置
绑定项目数据库实例和迁移目录:
use App\Container\DB\DB; use Haoa\Migration\Migration; Migration::setDatabaseResolver(function () { return DB::instance(); }); Migration::setMigrationPath(BASE_PATH . '/database/migrations');
手动注册命令:
use Haoa\Migration\MigrationCommandProvider; $cmds = array_merge($cmds, MigrationCommandProvider::commands()); Cli::addArrCommand(...$cmds)->run();
使用
php bin/cli.php migration:make create_users_table php bin/cli.php migrate:run
迁移文件返回一个带公开 up() 方法的对象。up() 内可执行任意项目代码,事务由迁移文件自行控制。
<?php declare(strict_types=1); use App\Container\DB\DB; return new class { public function up(): void { DB::instance()->raw('CREATE TABLE users (id BIGINT PRIMARY KEY)', []); } };