locomotivemtl/charcoal-contrib-database-migrator

数据库迁移的Charcoal服务提供商。

0.1.1 2021-06-11 16:32 UTC

This package is auto-updated.

Last update: 2024-09-11 23:56:25 UTC


README

License Latest Stable Version Code Quality Coverage Status Build Status

A Charcoal service provider with cool features.

目录

安装

首选(也是唯一支持的)方法是使用Composer

$ composer require locomotivemtl/charcoal-contrib-database-migrator

依赖项

必需

PSR

  • PSR-7: HTTP消息的通用接口。由Slim实现。
  • PSR-11: 依赖容器的通用接口。由Pimple实现。

配置

在你的项目配置文件中,如此require迁移器模块

{
    "modules": {
        "charcoal/migrator/migrator": {}
    }
}

可选地,你也可以在项目配置文件中使用database.migrator键覆盖一些迁移器配置

{
    "database": {
        "migrator": {
            "migrations": {
                "search_paths": [
                    "path/to/some/migrations",
                    "path/to/some/custom/migrations"
                ]
            }
        }
    }
}

使用方法

运行迁移

只需在控制台中运行此命令即可启动迁移过程

$ vendor/bin/charcoal admin/database/migrate

CLI UI将逐步引导您。

创建新迁移

迁移应始终扩展AbstractMigration

MigrationYYYYMMDDHHMMSS.stub可以用作创建新迁移的起点。只需将其复制粘贴到需要新迁移的包中。

迁移应始终命名为MigrationYYYYMMDDHHMMSS.php以方便阅读。

迁移文件包含一个遵循以下准则的PHP类

  • 在类名中包含修复此迁移的提交时间戳,前面加上migration
  • 有一个up方法,以及可选的down方法,以便迁移工具在版本升级或降级时处理迁移。
  • 有一个description方法来简要说明迁移

你可以在迁移上实现setDependencies方法。

     /**
     * Inject dependencies from a DI Container.
     *
     * @param Container $container A Pimple DI service container.
     * @return void
     */
    protected function setDependencies(Container $container)
    {
        // This method is a stub.
        // Reimplement in children method to inject dependencies in your class from a Pimple container.
    }

你还可以使用init()函数处理需要在updown方法中都需要的数据。

将迁移注入到迁移器

只要迁移遵循上述准则,它就会被迁移器自动解析。无需做更多。

开发

要安装开发环境

$ composer install

要运行脚本(phplint、phpcs和phpunit)

$ composer test

API 文档

开发依赖

  • [php-coveralls/php-coveralls][phpcov]
  • [phpunit/phpunit][phpunit]
  • [squizlabs/php_codesniffer][phpcs]

编码风格

charcoal-contrib-database-migrator模块遵循Charcoal编码风格

可以使用 composer phpcs 进行编码风格验证/执行。还有 composer phpcbf 提供的自动修复工具。

致谢

许可证

Charcoal 依据 MIT 许可证授权。详细信息请参阅 LICENSE