Search by

haoa / migration

quhao

Lightweight versioned database migrations for Haoa projects

Package info

github.com/hao-php/migration

pkg:composer/haoa/migration

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-09-30 09:41 UTC

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)', []);
    }
};