azema/phigrate

PHP 5.3 的迁移 SQL

v1.3.0 2014-04-10 12:18 UTC

README

Build Status

简介

Phigrate 是一个用 PHP5 编写的框架,用于生成和管理一系列 "数据库迁移"。数据库迁移是声明性文件,表示数据库(其表、列、索引等)在特定时间点的状态。通过使用数据库迁移,多个开发人员可以共同工作在同一应用上,并确保应用在所有远程开发人员机器上保持一致状态。

该框架的思路借鉴了 Ruby on Rails 内置的迁移系统。任何熟悉 RoR 迁移的人都会立刻感到熟悉。

项目基于持续集成 Jenkins (http://travis-ci.org/Azema/Phigrate)

文档 (https://github.com/Azema/Phigrate/wiki)

功能

  • 便携性:描述要创建的表、列、索引等的迁移文件是用纯 PHP5 编写的,然后在运行时转换为适当的 SQL。这允许用户通过单一套迁移文件透明地支持任何 RDBMS(假设有相应的适配器,见下文)。

  • 可扩展性:框架是考虑到可扩展性而编写的,它非常模块化。支持新的 RDBMS 应该只需要创建适当的适配器并实现一个接口即可。

  • 类似 "rake" 的基本任务支持。框架有一个 "任务" 的概念(实际上,框架的主要焦点,迁移,只是一个普通的任务),它只是实现一个接口的 PHP5 类。任务可以自由编写,只要它们遵循特定的命名约定并实现特定的接口,框架就会自动注册它们并允许它们执行。

  • 能够向上或向下移动到特定的迁移状态。

  • 生成骨架迁移文件的代码生成器。

  • 内置对基本任务的支持,如初始化数据库模式信息表(db:setup)、询问当前版本(db:version)和转储当前模式(db:schema)。

限制

  • PHP 5.3 或更高版本是硬性要求。该框架广泛使用了 PHP5 的面向对象特性。没有计划让框架向后兼容。

  • 截至 2007 年 8 月,只支持 MySQL RDBMS。

  • 截至 2012 年 9 月,不再支持 PHP 5.2。