mysql/schematic

一个简单的PHP MySQL迁移管理工具,可以自动创建和更新数据库,无需使用内置ORM函数。

1.5.0 2014-11-20 10:57 UTC

README

不再维护

由于Schematic从未真正完整地完成所有我想要的功能,我将它暂时搁置,如果有人想成为新的积极贡献者,请告诉我。然而,我现在转向Laravel作为我的主要框架,Laravel迁移已经取代了Schematic。

数据库迁移工具,允许以易于设置的方式在持续集成环境中轻松维护数据库。

构建状态 最新稳定版本 总下载量 最新不稳定版本 许可证 Bitdeli徽标 ###使用Composer在本地上安装

{
    require: {
        "mysql/schematic": "1.*.*"
    }
}

###全局安装

  • 运行以下命令

下载PHAR文件

wget --no-check-certificate https://github.com/andrefigueira/Schematic/raw/master/schematic.phar

使PHAR包可执行

chmod +x schematic.phar

将其移动到用户bin文件夹

mv schematic.phar /usr/local/bin/schematic

然后使用Schematic

schematic

Schematic现在将全局可用!

###模式格式

模式定义在模式文件中,这些文件必须存储在模式文件夹中的json文件中,表示它们所对应的表,例如(确保在项目的根目录中创建模式文件夹)

~/ProjectFolder/schemas/table_name.yaml

模式文件包含创建或修改数据库所需的所有数据库配置,请看下面的示例。

在当前版本中,您需要始终传递一个类型和null,您在类型字段中传递长度时放在括号内。

Schematic使用所有基础MySQL值,所以您只需将它们放入此文件即可使用,如果拼写错误,它将停止运行并抛出异常。

###示例模式

schematic:
    name: Schematic
    version: 1.4.5
database:
    general:
        name: schematic
        charset: utf8
        collation: utf8_general_ci
        engine: InnoDB
    tables:
        hello_world:
            fields:
                id:
                    type: int(11)
                    'null': false
                    unsigned: true
                    autoIncrement: true
                    index: 'PRIMARY KEY'
                client_id:
                    type: int(24)
                    'null': false
                    unsigned: true
                    autoIncrement: false
                name:
                    type: varchar(128)
                    'null': false
                    unsigned: false
                    autoIncrement: false
                    rename: full_name
                description:
                    type: varchar(256)
                    'null': false
                    unsigned: false
                    autoIncrement: false
                created_date:
                    type: datetime
                    'null': false
                    unsigned: false
                    autoIncrement: false

注意,目前仅添加外键,但不删除。如果创建了一个具有约束的新数据库,则必须运行更新两次以添加约束。

用法

schematic [options] command [arguments]

选项

--help -h 显示此帮助信息。

--quiet -q 不输出任何消息。

--verbose -v|vv|vvv 增加消息的详细程度:1为普通输出,2为更详细输出,3为调试

--version -V 显示此应用程序的版本。

--ansi 强制ANSI输出。

--no-ansi 禁用ANSI输出。

--no-interaction -n 不询问任何交互式问题。

可用命令

help 显示命令的帮助信息

list 列出命令

迁移

migrations:execute 根据JSON模式文件执行数据库迁移

migrations:generate 生成数据库模式JSON文件

migrations:mapping 根据现有数据库生成数据库模式

脚本还会创建所有数据库变更的日志。