Download the PHP package nsedenkov/sprint.migration without Composer

On this page you can find all versions of the php package nsedenkov/sprint.migration. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package sprint.migration

Миграции для разработчиков (1С-Битрикс)

Установка через composer

Пример вашего composer.json с установкой модуля в local/modules/

Консоль

Создаем скрипт migrate.php для запуска миграций через консоль

его содержимое:

Примеры команд

Все команды: https://github.com/andreyryabin/sprint.migration/blob/master/commands.txt

Пример файла миграции

/bitrix/php_interface/migrations/Version20150520000001.php

в нем необходимо реализовать 2 метода up и down, которые запускаются при установке и откате миграции, например создание инфоблоков или какое либо другое изменение, которое должны получить все копии проекта.

Все примеры: https://github.com/andreyryabin/sprint.migration/tree/master/examples

Состояния миграций

Сообщения выполняющихся миграций

Конфиги модуля

Основной (по умолчанию) /local/php_interface/migrations.cfg.php или /bitrix/php_interface/migrations.cfg.php

Дополнительные /local/php_interface/migrations.{NAME}.php или /bitrix/php_interface/migrations.{NAME}.php

title - название конфига

migration_dir - директория для миграций (относительно DOC_ROOT), по умолчанию: /local/php_interface/migrations или /bitrix/php_interface/migrations

migration_table - таблица в бд с миграциями, по умолчанию sprint_migration_versions

migration_extend_class - класс, от которого наследуются миграции, по умолчанию Version (ваш класс должен наследоваться от Version)

tracker_task_url - Шаблон ссылки на задачу в трекере, в описании миграции можно указать номер задачи, например #12345, а в шаблоне должна быть конструкция $1, например http://www.redmine.org/issues/$1/, работает только в админке

version_prefix - Заголовок класса миграции, по умолчанию Version (полное имя класса состоит из заголовка и даты)

version_builders - Конструкторы (скрипты позволяющие выполнить какую либо задачу)

stop_on_errors - Останавливать выполнение миграций при появлении ошибок, варианты значений: true | false, по умолчанию false (не останавливать)

show_admin_interface - Показывать сервис миграций в админке, варианты значений: true | false, по умолчанию true (показывать)

console_user - Пользователь, от которого запускаются миграции в консоли, варианты значений: admin | login:userlogin | false, по умолчанию admin (запускать от админа)

version_filter - Массив, по которому будет фильтроваться и выполняться список миграций

Ни один из параметров не является обязательным.

При указании в конфиге несуществующей директорий для миграций (migration_dir) или таблицы в бд (migration_table) модуль создаст их.

Текущий конфиг помечается звездочкой * как в админке, в блоке конфигов, так и в консоли (команда config).

Переключить конфиг в админке можно нажав кнопку "переключить" напротив нужного конфига В консоли - используя параметр --config={NAME} к любой команде

Примеры:

Модуль запомнит выбранный конфиг после переключения

Пример фильтрации списка миграций

Создайте конфиг и задайте параметры для фильтрации

Укажите этот фильтр у нужных миграций в свойстве $versionFilter

И при просмотре списка миграций или установке\откату всех сразу выборка будет производиться только по вашему фильтру

Такого же результата можно добиться определив метод isVersionEnabled() в коде миграции, метод должен вернуть true или false в зависимости от какого-либо условия и миграция появится или пропадет из списка миграций

Пример создания конструктора миграции

Создайте класс-конструктор и объявите его в конфиге

Ваш класс должен наследоваться от Sprint\Migration\AbstractBuilder

Реализуйте алгоритм создания миграции по аналогии

с конструктором /modules/sprint.migration/classes/Sprint/Migration/Builders/IblockExport.php

и шаблоном для него /modules/sprint.migration/templates/IblockExport.php

Пример создания миграции, которая наследуется от вашего класса

Укажите ваш класс в конфиге

Создайте этот класс

Создайте миграцю migrate.php add, результат:

Информация для разработчиков

Использовать какие-либо внутренние классы модуля не рекомендуется.

Совместимость от версии к версии модуля гарантируется для:

Миграция не выполняется если в методах up() или down() вызывается return false или произошло исключение, в остальных случаях миграция выполняется успешно

Миграции при установке всех сразу выполняются от более старых к новым, при откате наоборот - от более новых к старым

При установке\откате всех миграций сразу, в случае если одну из миграций не удается выполнить, она пропускается и выполняются следующие миграции после нее, это поведение можно отрегулировать параметром в конфиге stop_on_errors = true , при таком варианте выполнение миграций остановится на миграции с ошибкой.

Код миграций должен быть независимым друг от друга, например если в одной миграции создается инфоблок, то в другой, перед тем как добавить какое-либо свойство, необходимо проверить существование этого инфоблока.

Такие методы есть в Sprint\Migration\Helpers\IblockHelper, например addIblockIfNotExists, addPropertyIfNotExists

При работе из консоли можно указать пользователя, от которого будут запускаться миграции, это регулируется параметром в конфиге console_user, с вариантами значений: admin - авторизоваться под первым найденным админом (по умолчанию) login:userlogin - авторизоваться под логином userlogin false - не авторизовываться

Скриншоты

админка


All versions of sprint.migration with dependencies

PHP Build Version
Package Version
Requires php Version >=5.3.0
composer/installers Version ~1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package nsedenkov/sprint.migration contains the following files

Loading the files please wait ....