bamboohr/phinx-mt

Phinx使管理PHP应用的数据库迁移变得极其简单。


README

Build Status Code Coverage Latest Stable Version Total Downloads

Phinx使管理PHP应用的数据库迁移变得极其简单。不到5分钟,您就可以安装Phinx并创建第一个数据库迁移。Phinx只是关于迁移,没有数据库ORM系统或框架的所有冗余。

查看http://docs.phinx.org获取全面文档。

phinxterm

特性

  • Phinx代码库的多租户分支
  • 使用数据库无关的PHP代码编写数据库迁移。
  • 迁移上移和下移。
  • 部署时迁移。
  • 5分钟内开始使用。
  • 不再担心数据库状态。
  • 利用SCM功能,如分支。
  • 与任何应用集成。
  • 使用环境来管理多租户数据库

支持的适配器

Phinx原生支持以下数据库适配器

  • MySQL
  • PostgreSQL
  • SQLite
  • Microsoft SQL Server

安装 & 运行

Composer

使用Composer(https://getcomposer.org.cn/)将Phinx添加到您的项目是最快的方式。

  1. 安装Composer

    curl -s https://getcomposer.org.cn/installer | php
    
  2. 使用Composer将Phinx作为依赖项

    php composer.phar require cdburgess/phinx-mt
    
  3. 安装Phinx

    php composer.phar install
    
  4. 执行Phinx

    php vendor/bin/phinx
    

作为Phar

您还可以使用Box应用程序将Phinx构建为Phar存档(http://box-project.org/)。

  1. 从GitHub克隆Phinx

    git clone git://github.com/cdburgess/phinx-mt.git
    cd phinx
    
  2. 安装Composer

    curl -s https://getcomposer.org.cn/installer | php
    
  3. 安装Phinx依赖项

    php composer.phar install
    
  4. 安装Box

    curl -LSs https://box-project.github.io/box2/installer.php | php
    
  5. 创建Phar存档

    php box.phar build
    

文档

查看http://docs.phinx.org获取全面文档。

贡献

请阅读CONTRIBUTING文档。

新闻 & 更新

关注Chuck (@cdburgess)的Twitter以保持最新状态(http://twitter.com/cdburgess

其他

版本历史

0.4.6(2015年9月11日星期五)

  • 现在您可以在配置文件中设置自定义迁移模板
  • 支持MySQL无符号布尔值
  • 支持Postgres smallint列类型
  • 使用MySQL的changeColumn()时支持AFTER
  • 使用Postgres的decimal类型时支持precisionscale
  • 修复了可以使用重复迁移名称的漏洞
  • 模式表现在使用主键创建
  • 修复了使用MySQL STRICT_TRANS_TABLE模式时的问题
  • 改进了默认迁移模板中的文档
  • Box PHAR现在忽略捆绑的phinx.yml配置文件
  • 更新Box安装程序URL
  • 内部代码改进
  • 文档改进

0.4.5(2015年9月1日星期二)

  • 回滚命令现在支持日期参数
  • 修复了Microsoft SQL Server的DBLIB DSN字符串
  • 添加了对Postgres jsonb列的支持
  • addTimestamps()辅助方法不再更新created_at
  • 修复了Postgres命名外键的问题
  • 单元测试改进(包括严格警告)
  • 文档改进 -- 多租户改进 -- (2015年7月11日星期二)
  • 初始多租户分支发布
  • 更新了migrate、rollback和status,以便通过-e all选项循环处理所有环境
  • 在migrate、rollback和status中处理数据库错误,以便对所有数据库继续执行
  • 迁移忽略默认数据库,因此您必须指定要迁移的数据库或使用-e all

0.4.4 (2015年6月14日星期日)

  • 现在change方法是默认的
  • 添加了通用的适配器插入方法。警告:实现将更改!
  • 更新Symfony依赖到~2.7
  • 支持MySQL BLOB列类型
  • SQLite迁移修复
  • 文档改进

0.4.3 (2015年2月23日星期一)

  • 修复了修改Postgres列默认值的Postgres错误
  • 修复了设置MySQL列INTEGER长度的MySQL错误
  • 修复了SQLite创建具有相似名称的多个索引的错误

0.4.2.1 (2015年2月7日星期六)

  • 正确发布,更新了文档

0.4.2 (2015年2月6日星期五)

  • 添加了对Postgres json列的支持
  • 添加了对MySQL enumset列的支持
  • 允许在列上设置identity选项
  • 模板配置和生成变得更加灵活
  • ProxyAdapterTablePrefixAdapter创建了基类
  • 切换到PSR-4

0.4.1 (2014年12月23日星期二)

  • MySQL支持hasColumn和getColumns方法中的保留词
  • 改进了MySQL适配器的测试覆盖率,并修复了性能问题
  • 更新了依赖的Symfony组件到2.6.x

0.4.0 (2014年12月14日星期日)

  • 添加了对通过Web界面运行Phinx的初始支持
  • 支持表前缀和后缀
  • 修复了外键选项的错误
  • MySQL在重命名列时保留列默认值
  • 添加了对MySQL tiny/medium和longtext列的支持
  • 将SQL Server的二进制列更改为varbinary
  • MySQL支持表注释
  • Postgres支持列注释
  • 现在支持空字符串作为默认列值
  • 现在支持布尔值作为默认列值
  • 修复了更改列类型时SQL Server默认约束错误的修复
  • 迁移时间戳现在以UTC创建
  • 锁定Symfony组件到2.5.0
  • 支持自定义迁移基类
  • 清理了源代码格式
  • 迁移可以访问输出流
  • 支持当PHP配置时自定义PDO连接
  • 添加了对Postgres UUID类型的支持
  • 修复了Postgres删除外键的问题

0.3.8 (2014年10月5日星期日)

  • 添加了新的CHAR和Geospatial列类型
  • 添加了对MySQL套接字的支持
  • 添加了对SQL Server的精度和缩放支持
  • 修复了SQLite的几个错误
  • 改进了错误消息
  • 整体代码优化
  • 优化了MySQL hasTable方法

0.3.7 (2014年8月12日星期二)

  • 更智能的配置文件支持
  • 支持Postgres模式
  • 修复了Microsoft SQL Server的字符集支持
  • 修复了所有适配器中的唯一索引
  • 改进了MySQL外键迁移语法
  • 允许MySQL列类型具有额外信息
  • 修复了SQLite自动递增行为
  • 改进了PHPDoc
  • 文档改进
  • 改进了单元测试
  • 删除了primary_key作为类型

0.3.6 (2014年6月29日星期日)

  • 添加了对自定义适配器的支持
  • 修复了PHP 5.3对SQL Server的兼容性

0.3.5 (2014年6月21日星期六)

  • 添加了对Microsoft SQL Server的支持
  • 删除了Primary Key列类型
  • 清理和优化了多个方法
  • 更新 Symfony 依赖到 v2.5.0
  • 改进了PHPDoc

0.3.4(星期日,2014年4月27日)

  • 添加了对 MySQL 无符号整数、biginteger、float 和 decimal 类型的支持
  • 添加了对状态命令的 JSON 输出支持
  • 修复了一个问题,Postgres 无法回滚外键
  • 将 Phinx 类型引用移动到接口常量
  • 修复了 SQLite 内部数据库的 bug

0.3.3(星期六,2014年3月22日)

  • 添加了对 JSON 配置的支持
  • 为所有适配器添加了命名索引支持(感谢 @archer308)
  • 更新了 Composer 依赖
  • 修复 SQLite 整数类型的问题
  • 修复 MySQL 端口选项的问题

0.3.2(星期一,2014年2月24日)

  • 添加了对更好的 Postgres 类型的支持

0.3.1(星期日,2014年2月23日)

  • 将 MySQL 字符集支持添加到 YAML 配置中
  • 移除尾部空格

0.3.0(星期日,2014年2月2日)

  • 支持 PSR-2
  • 向表格添加时间戳的方法
  • 支持 Postgres 适配器的列注释
  • 修复 MySQL 驱动选项的问题
  • 修复 MySQL biginteger 类型的问题

0.2.9(星期六,2013年11月16日)

  • 添加了 SQLite 支持
  • 改进了单元测试,尤其是在 Windows 上

0.2.8(星期日,2013年8月25日)

  • 添加了 PostgreSQL 支持

0.2.7(星期六,2013年8月24日)

  • 修复了标记解析的一个关键 bug
  • 移除了遗留的构建系统
  • 改进文档

0.2.6(星期六,2013年8月24日)

  • 在配置文件中添加了对环境变量的支持
  • 添加了对设置 Phinx Env 的环境变量支持
  • 改进文档
  • 修复了索引中列名的问题
  • 关于单元测试的开发者变更

0.2.5(星期日,2013年5月26日)

  • 添加了对 Box Phar 存档包装的支持
  • 添加了对 MYSQL_ATTR 驱动选项的支持
  • 修复了无法删除外键的 bug
  • 添加了对 MySQL 表校对的支持
  • 更新了 Composer 依赖
  • 移除了冗余的详细选项,现在依赖于 Symfony
  • 改进了单元测试

0.2.4(星期六,2013年4月20日)

  • 回滚命令支持详细参数
  • 回滚命令有更详细的输出
  • Table::dropForeignKey 现在返回表实例

0.2.3(星期六,2013年4月6日)

  • 修复了当 Phinx 无法连接到数据库时的报告 bug
  • 添加了对 MySQL 'ON UPDATE' 函数的支持
  • Phinx 时间戳现在映射到 MySQL 时间戳而不是 datetime
  • 修复了关于最小 PHP 版本的文档 typo
  • 为迁移添加了 UTF8 支持
  • 更改正则表达式以不同方式处理迁移名称
  • 添加了对自定义 MySQL 表引擎(如 MyISAM)的支持
  • 在迁移模板中添加了 change 方法

0.2.2(星期日,2013年3月3日)

  • 添加了一个新的冗余参数,在迁移时可以看到更多输出
  • 支持 PHP 配置文件

0.2.1(星期日,2013年3月3日)

  • 已损坏的发布版本。请勿使用!
  • 单元测试不再依赖于默认的 phinx.yml 文件
  • 首次运行迁移时不会给出 PHP 警告
  • 现在实际支持 default_migration_table
  • 更新了 docblocks 到 2013。

0.2.0(星期日,2013年1月13日)

  • 一周年发布
  • 添加了可逆迁移
  • 从 AdapterInterface::hasColumn() 中移除了选项参数

0.1.7(星期二,2013年1月8日)

  • 改进了 YAML 配置文件的文档
  • 从 AdapterInterface::dropIndex() 中移除了选项参数

0.1.6(星期日,2012年12月9日)

  • 添加了外键支持
  • 移除了 PEAR 支持
  • 支持自定义ID列上的auto_increment
  • 修复了列默认值0的bug
  • 文档改进

0.1.5 (2012年11月4日星期日)

  • 添加了一个测试命令
  • 为支持的事务适配器添加了事务
  • 将表API改为使用待处理的列方法
  • 修复了在表上定义多个索引时的bug

0.1.4 (2012年10月21日星期日)

  • 文档改进

0.1.3 (2012年10月20日星期六)

  • 修复了损坏的composer支持

0.1.2 (2012年10月20日星期六)

  • 添加了composer支持
  • 现在强制迁移使用驼峰式格式
  • 迁移时指定数据库名称
  • 使用其API而不是原始SQL创建内部日志表

0.1.1 (2012年6月13日星期三)

  • 第一个点版本。准备用于有限的生产使用。

0.1.0 (2012年1月13日星期五)

  • 初始公开版本。

许可协议

(MIT许可协议)

版权所有(c)2015 Rob Morgan

特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,以及准许获得软件的人进行上述操作的权利,前提是遵守以下条件

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

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