beberlei /dbdeploy-php
此包的最新版本(v1.0)没有可用的许可证信息。
v1.0
2015-02-09 23:13 UTC
Requires
- php: ~5.4
- doctrine/dbal: ~2.5
This package is auto-updated.
Last update: 2024-09-12 03:33:34 UTC
README
这是一个基于 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
特此授予任何获得此软件及其相关文档副本(“软件”)的人,在软件上不受限制地处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的副本或主要部分中。
本软件按“原样”提供,除非另有说明,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些索赔、损害或其他责任是基于合同、侵权或其他方式产生的,无论是与软件或软件的使用或其他方式相关的。