devco/trek

Trek是一个简单的迁移和版本管理库。它抽象了版本跟踪和版本间的迁移,使您能够专注于基于简单界面的清洁迁移脚本的编写。

该软件包的规范仓库似乎已不存在,因此该软件包已被冻结。

维护者

详细信息

github.com/devco/Trek

主页

安装:3,066

依赖项: 0

建议者: 0

安全: 0

星标: 10

关注者: 14

分支: 4

1.2.0 2017-05-07 03:21 UTC

This package is not auto-updated.

Last update: 2024-01-20 09:43:11 UTC


README

Trek是一个简单的迁移和版本管理库。它抽象了版本跟踪和版本间的迁移,使您能够专注于基于简单界面的清洁迁移脚本的编写。

目录结构

Trek假设一个传统的目录结构

<namespace>/<major>.<minor>.<patch>/<number>_<classname>.php

<namespace>

默认设置为Migration,但您可以根据需要将其更改为任何有效的命名空间。

<major>.<minor>.<patch>

为了将版本目录映射到迁移类命名空间的一部分,它被转换为每个数字都映射到其英文单词,每个句点被替换为命名空间分隔符。

版本还支持使用预发布版本和预发布版本号。

  • 1.0.0-alpha
  • 1.0.0-alpha.1
  • 1.0.0-beta
  • 1.0.0-beta.1
  • 1.0.0-rc.1

...等等。

<number>

文件名中的数字部分允许您简单地定义迁移脚本的执行顺序。在解析过程中会从实际类名中移除。

<classname>

文件名中的这部分直接映射到解析命名空间内的类名。

编写迁移

以下是对Migration/1.0.10/1_AddUserTable.php的迁移

<?php

namespace Migration\One\Zero\OneZero;
use Trek\MigrationInterface;

class AddUserTable implements MigrationInterface
{
    public function up()
    {
        // upgrade code here...
    }

    public function down()
    {
        // downgrade code here...
    }
}

您可以根据自己的喜好在方法中编写代码;没有依赖项,您可以使用任何库。

迁移

迁移是通过使用Trek\Migrator类完成的。

<?php

use Trek\Migrator;

$migrator = new Migrator('path/to/migrations', 'Migration\Namespace');

迁移器需要您传递一个目录来加载迁移,以及一个可选的、首选的命名空间来代替默认命名空间。

在任意版本之间移动相当简单。如果您想更新到最新版本,无论您目前处于哪个版本

$migrator->up();

如果您想移动到特定版本

$migrator->to('1.0.0');

如果您想因为错误而回滚

try {
    $migrator->up();
} catch (\Exception $e) {
    $migrator->rollback();
}

如果在回滚过程中出现错误,您需要手动处理这些错误。

运行测试

要从工作副本根目录运行测试

php bin/tests.php

许可证

版权所有(c)2013 Ultra Serve Internet Pty Ltd

在此特此授予任何获取此软件及其相关文档文件(“软件”)副本的任何人,免费使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供方提供软件的人这样做,但受以下条件的约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的还是与商业性、特定目的适用性及非侵权性相关的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,以及与软件或软件的使用或其他交易有关的索赔。