https://github.com/izica/bitrix-migrations
1C Bitrix migrations
https://github.com/izica/bitrix-migrations
1c 1c-bitrix bitrix bitrix-cms bitrix-migrations bitrix-module cms cms-bitrix iblock iblock-form iblock-property migration migrations
Last synced: 9 months ago
JSON representation
1C Bitrix migrations
- Host: GitHub
- URL: https://github.com/izica/bitrix-migrations
- Owner: izica
- License: mit
- Created: 2018-03-22T09:00:27.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2023-04-09T00:57:47.000Z (about 3 years ago)
- Last Synced: 2025-08-20T01:22:09.478Z (10 months ago)
- Topics: 1c, 1c-bitrix, bitrix, bitrix-cms, bitrix-migrations, bitrix-module, cms, cms-bitrix, iblock, iblock-form, iblock-property, migration, migrations
- Language: PHP
- Homepage:
- Size: 65.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bitrix migrations
Миграции для CMS 1C Bitrix. Миграции также поддерживают стандартное апи CMS Bitrix
Методы появляются по мере востребованности, если нужно добавить метод, создавайте issue
## Установка
```
composer require izica/bitrix-migrations
```
## Настройка
Запустить скрипт init, в папке из которой запущен скрипт, создаст папку migrations и все нужные файлы
Параметры скрипта:
* --root - относительный путь DOCUMENT_ROOT(обязательный параметр)
* --directory - название директории которая создастся для миграций(по умолчанию 'migrations')
* --file - название файла который создастся для миграций(по умолчанию 'bxm')
Структура созданных папок будет выглядеть так
* migrations
* bxm
* migration - тут будут лежать миграции
* template - тут лежат шаблоны
#### Пример запуска из папки local
```
php php_interface/vendor/izica/bitrix-migrations/bxm.php init --root=../
```
#### Пример запуска из папки local/php_interface
```
php vendor/izica/bitrix-migrations/bxm.php init --root=../../
```
## Миграции
### Команды
Для просмотра всех доступных команд наберите
```
php bxm
```
```
List of available commands:
migrate -- start migrations
migration -- create migration
create -- create migration(same thing as migration)
rollback -- rollback last migration
reset -- reset migrations
```
### Создание миграции
```
php bxm create create-news-iblock
```
также доступны шаблоны
```
php bxm create create-iblock-news --template={templateName}
php bxm create create-iblock-news --template=iblock
```
### Шаблоны
Библиотека имеет список встроенных шаблонов.
```markdown
* default - пустой шаблон
* iblocktype - создание типа инфоблока
* iblock - создание инфоблока
* iblock-property - создание свойства инфоблока
* iblock-catalog - создание каталога(инфоблока типа Торговый каталог)
```
Для создания собственных шаблонов их можно размещать в соседнюю с миграциями папку "template".
### Пример Миграции
```php
'Y',
"NAME" => 'Новости',
"CODE" => 'news',
"IBLOCK_TYPE_ID" => 'info',
"SITE_ID" => ["s1"],
"GROUP_ID" => ["2" => "D", "3" => "R"]
];
$nId = $obIblock->Add($arFields);
$this->log('CIBlock news created');
}
public function down() {
CModule::IncludeModule('iblock');
CIBlock::Delete($this->getIblockIdByCode('news'));
$this->log('CIBlock news deleted');
}
}
```
### Дополнительные функции класса Migration
* log($message, $code) - вывод сообщения в консоль в процесса миграции
* set($key, $value) - сохранение данных в буфер миграции, удобно использовать например при создании свойств инфоблока.
* get($key) - получить данные из буфера.
* getIblockIdByCode($code) - получить ID инфоблока по его коду
```php
class Example extends Migration {
public function up() {
/*
* тут создается свойсво
*/
$nPropertyId = $obProperty->Add($arFields);
$this->set('PROPERTY_CODE', $nPropertyId);
$this->log('CIBlock news created');
}
public function down() {
CModule::IncludeModule('iblock');
$nPropertyId = $this->get('PROPERTY_CODE');
CIBlockProperty::Delete($nPropertyId);
$this->log('Property PROPERTY_CODE deleted');
}
}
```