beberlei/dbdeploy-php

此包的最新版本(v1.0)没有可用的许可证信息。

v1.0 2015-02-09 23:13 UTC

This package is auto-updated.

Last update: 2024-09-12 03:33:34 UTC


README

Build Status

这是一个基于 Doctrine DBAL 数据库抽象的 PHP DBDeploy 的克隆版本。 DBDeploy

它只支持原始基于 Java 工具的有限功能,但对于特定的流程来说已经足够完美。

为什么?这是从一个测试套件中提取的,在其中它被用于设置测试数据库的模式。它也比 DBDeploy 更容易设置。

工作流程假设

  • 仅基于 .sql 文件的迁移,格式 <number>_<name>.sql
  • 需要使用向后兼容的数据库更改,不支持撤销/向下迁移。特别是
    • 避免删除内容
    • 添加的列必须允许 NULL 或有默认值
  • 按文件中的数字前缀排序迁移(自然排序)。使用 YYmmddHHii_<name>.sql 格式以允许分支而不冲突。
  • 每个目录只有一个数据库供应商,对于需要不同供应商支持的应用使用多个。
  • 创建包含已应用迁移当前状态的表 changelog

API

API 只有一个方法:migrate()

<?php

use Doctrine\DBAL\DriverManager;
use DBDeployPHP\DBDeploy;

$dbDeploy = new DBDeploy($connection, $schemaDirectory);
$appliedMigrations = $dbDeploy->migrate();

CLI

需要存在环境变量 DATABASE_URL,格式为:mysql://user:password@host/dbname

$ php vendor/bin/dbdeploy-migrate.php src/schema

限制

目前仅适用于 MySQL。

许可证

MIT 许可证 (MIT)

版权所有 (c) 2015 Benjamin Eberlei

特此授予任何获得此软件及其相关文档副本(“软件”)的人,在软件上不受限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件

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

本软件按“原样”提供,除非另有说明,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他方式产生的,无论是与软件或软件的使用或其他方式相关的。