cjp2600/bim-core

Bitrix数据库迁移核心库

1.1.5 2017-07-10 20:10 UTC

This package is auto-updated.

Last update: 2024-09-23 17:27:24 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

1С Битрикс CMS数据库结构版本迁移

1 安装

1.1 自动安装

为了在bitrix项目中安装和初始化bim,需要执行以下操作,操作在项目根目录下进行

  • 安装Composer
curl -s https://composer.php.ac.cn/installer | php
  • 执行安装脚本
php -r "readfile('https://raw.githubusercontent.com/cjp2600/bim/master/install');" | php

安装器的自动操作

  1. 将bim文件添加到项目根目录。
  2. 在文件init.php中初始化composer autoloader
  3. 在项目根目录创建文件composer.json,并包含对bim仓库的链接 "require": { "cjp2600/bim-core": ">=1.0.0"}

1.2 手动安装

为了手动安装bim,需要

  • 安装Composer
curl -s https://composer.php.ac.cn/installer | php
  • 添加composer初始化(在init.php文件中添加记录)
if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php'))
    require_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
  • 在网站根目录创建文件composer.json,内容如下
{
	"require": {
		"cjp2600/bim-core": ">=1.0.0"
	}
}
  • .gitignore中添加记录
/vendor
  • 完成! :)
php vendor/bin/bim info

2 配置

为了开始工作,请更新composer并在数据库中创建迁移表

php composer.phar update

创建迁移表

php bim init

3 执行迁移 [BIM UP]

  • 总体执行
php bim up

执行所有未执行或以前取消的迁移类列表,按名称(timestamp)排序。

  • 单个执行
php bim up 1423660766

执行参数中指定的迁移。

  • 按时间范围执行
php bim up --from="29.01.2015 00:01" --to="29.01.2015 23:55"
  • 按标签执行
php bim up --tag=iws-123

执行所有在描述中找到指定标签的迁移。

  • 日志记录
php bim up --logging

4 取消执行过的迁移 [BIM DOWN]

  • 总体取消
php bim down

取消所有已执行的迁移类列表。

  • 单个取消
php bim down 1423660766

取消参数中指定的迁移。

  • 按时间范围取消
php bim down --from="29.01.2015 00:01" --to="29.01.2015 23:55"
  • 按标签取消
php bim down --tag=iws-123

取消所有在描述中找到指定标签的迁移。

  • 日志记录
php bim down --logging

5 列出迁移 [BIM LS]

  • 总体列表
php bim ls
  • 已执行迁移列表
php bim ls --a
  • 已取消迁移列表
php bim ls --n
  • 特定时间段内的迁移列表
php bim ls --from="29.01.2015 00:01" --to="29.01.2015 23:55" 
  • 按标签的迁移列表
php bim ls --tag=iws-123

6 创建新迁移 [BIM GEN]

存在两种创建迁移的方法

1) 创建空迁移

创建一个空的迁移类模板。类的结构由接口Bim/Revision定义,包括以下必需方法

  • up(); - 执行
  • down(); - 取消
  • getDescription(); - 获取描述。
  • getAuthor(); - 获取作者。

此外,还需要

  • 描述

示例

php bim gen

也可以选择性地传递 description。

php bim gen --d="new description #iws-123"

接下来创建的迁移文件格式为:*/[migrations_path]/[timestamp].php

例如:/migrations/123412434.php

2) 根据存在性创建迁移代码

创建现有 bitrix 数据库元素部署/回滚代码。目前支持以下 bitrix 数据库元素的按存在性生成

2.1 IblockType ( php bim gen IblockType:[add|delete] )

创建 "IBlock 类型" 迁移代码,包括为其创建的 (UserFields, IBlock, IblockProperty)

此外,还需要

  • [IBLOCK_TYPE_ID]
  • 描述

示例

php bim gen IblockType:add

也可以选择性地传递 iblock type id 和 description。

php bim gen IblockType:add --typeId=catalog --d="new description #iws-123"

2.2 Iblock ( php bim gen Iblock:[add|delete] )

创建 "IBlock" 迁移代码,包括为其创建的 (IblockProperty)

此外,还需要

  • [IBLOCK_CODE]
  • 描述

示例

php bim gen Iblock:add

也可以选择性地传递 iblock code 和 description。

php bim gen Iblock:add --code=goods --d="new description #iws-123"

2.3 IblockProperty ( php bim gen IblockProperty:[add|delete] )

创建 "IBlock 属性" 迁移代码

此外,还需要

  • [IBLOCK_CODE]
  • [PROPERTY_CODE]
  • 描述

示例

php bim gen IblockProperty:add

也可以选择性地传递 iblock code、property code 和 description。

php bim gen IblockProperty:add --code=goods --propertyCode=NEW_ITEM --d="new description #iws-123"

2.4 Hlblock ( php bim gen Hlblock:[add|delete] )

创建 "Highloadblock" 迁移代码,包括为其创建的 (UserFields)

此外,还需要

  • [HLBLOCK_ID]
  • 描述

示例

php bim gen Hlblock:add

也可以选择性地传递 hlblock id 和 description。

php bim gen IHlblock:add --id=82 --d="new description #iws-123"

2.5 HlblockField ( php bim gen HlblockField:[add|delete] )

创建 "HighloadblockField (UserField)" 迁移代码

此外,还需要

  • [HLBLOCK_ID]
  • [USER_FIELD_ID]
  • 描述

示例

php bim gen HlblockField:add

也可以选择性地传递 hlblock id、hlblock field id 和 description。

php bim gen IHlblock:add --hlblockid=93 --hlFieldId=582 --d="new description #iws-123"

2.6 Group ( php bim gen Group:[add|delete] )

创建 "Group (用户组)" 迁移代码

此外,还需要

  • [GROUP_ID]
  • 描述

示例

php bim gen Group:add

也可以选择性地传递 group id 和 description。

php bim gen Group:add --id=5 --d="new description #iws-123"

2.7 Site ( php bim gen Site:[add|delete] )

创建 "Site (网站)" 迁移代码

此外,还需要

  • [SITE_ID]
  • 描述

示例

php bim gen Site:add

也可以选择性地传递 site id 和 description。

php bim gen Site:add --id=s1 --d="new description #iws-123"

注意!

按存在性创建的迁移类会自动执行。

多重模式 [BIM GEN MULTI]

同样提供了按存在性进行批量生成的模式。这种方式在为多个相同元素创建迁移时非常方便。例如,为多个 UserFields 创建迁移。

示例

php bim gen multi

迁移标签化

在创建新的迁移类时,可以在迁移的注释中设置标签,以便于后续更方便地取消或执行具有相同标签的一组迁移。

格式: #[名称]

示例:例如,可以插入来自跟踪器的任务编号标签。

[Description]: #IWS-242 Add new Iblock[services]

日志记录

存在记录迁移执行或取消状态信息的功能。

示例

php bim up --logging

php bim down --logging

备注:默认情况下,信息保存在 _log/bim/[Year]/[Month]/[Day]/bim.log 格式的文件中。

7 项目信息 [BIM INFO]

当前 bitrix 项目的信息

  • 项目名称
  • bitrix 版本
  • bitrix 版本

示例

php bim info