p0n0marev/bitrix-orm-migrations

Database migrations for Bitrix ORM

This package's canonical repository appears to be gone and the package has been frozen as a result.

0.5 2018-06-09 11:05 UTC

This package is auto-updated.

Last update: 2024-03-13 16:30:27 UTC


README

Автоматическое создание и применение файлов миграций БД для ORM 1С-Битрикс.

Установка

composer require p0n0marev/bitrix-orm-migrations

Как использовать из консоли на примере symfony/console.

Устанавливаем компонент composer require symfony/console

создаем файл с примерно таким содержимым

#!/usr/bin/env php
<?php
define("NOT_CHECK_PERMISSIONS", true);
$_SERVER["DOCUMENT_ROOT"] = __DIR__ . DIRECTORY_SEPARATOR . '../www';
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";

use \Symfony\Component\Console\Application;

require __DIR__ . '/../vendor/autoload.php';

$application = new Application();
$application->add(new \P0n0marev\BitrixMigrations\Command\DiffCommand());
$application->add(new \P0n0marev\BitrixMigrations\Command\MigrateCommand());
$application->add(new \P0n0marev\BitrixMigrations\Command\RollbackCommand());
$application->add(new \P0n0marev\BitrixMigrations\Command\StatusCommand());
$application->run();

Запускаем php app/console.php migrations:status

Доступные команды

migrations:status количество доступных
migrations:diff cоздать файл миграции
migrations:migrate запустить необработаные migrations:rollback откатить последнюю

Подробнее о symfony/console http://symfony.com/doc/current/console.html

Как использовать в скрипте

<?php
require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');

$migrate = new P0n0marev\BitrixMigrations\Migrate();

// Создать файл миграции
$migrate->diff();
// запустить необработаные
$migrate->migrate();
// количество доступных
$migrate->status();
// откатить последнюю
$migrate->rollback();

История выполненных миграций будет хранится в таблице migration_versions. Таблица будет создана автоматически при необходимости.