Download the PHP package hetzerok/sam without Composer
On this page you can find all versions of the php package hetzerok/sam. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package sam
Short Description Standalone migrations for MySQL. No ORM requires. No manual schema creation.
License MIT
Informations about the package sam
SAM (StandAlone Migrations)
Описание
Компонент предназначен для создания и управления миграциями БД без зависимости от какого-либо фреймворка. Поддерживает MySQL 5.5+, использует PHP 5.5+. Позволяет используя привычные инструменты работать c MySQL, а затем на основе существующей таблицы генерировать файлы миграций. В дальнейшем из этих файлов можно полностью восстановить структуру БД ил её данные до любой созданной ранее версии.
Установка и настройка
Установка из исходников:
1) Скачайте файлы компонента или клонируйте репозиторий.
2) Запустите команду composer update
чтобы установить зависимости.
3) На основе файла config.inc.sample.php
создайте файл config.inc.php
, используя свои настройки.
4) ...profit
Установка через composer
1) Выполните команду composer require hetzerok/sam
- в результате установится компонент и все его зависимости.
2) Скопируйте файл vendor/hetzerok/sam/run.php
в удобное для запуска место.
3) На основе файла vendor/hetzerok/sam/config/config.inc.sample.php
создайте файл config.inc.php
, используя свои настройки и поместите их в
удобную для вас директорию
4) Внесите изменения в файл run.php
:
9 строка:
пропишите свой путь до автолодера.
17 строка:
пропишите свой путь до файла `config.inc.php`.
Комады
Для работы с CLI требуется выполнить файл run.php
через консоль. При запуске будет показан набор доступных команд.
migrations:initialize
- инициализация системы миграций и создание первой миграции.migrations:generate
- создание миграции (кроме инициилизирующей)migrations:migrate
- применение миграций. Принимает опцию--last
, при помощи которой передаётся ключ последней накатываемой миграции.
Схема работы
Вы устанавливаете компонент, инициализируете систему командой migrations:initialize
, вносите изменения в бд любым
удобным вам способом. Когда приходит момент зафиксировать этап разработки используете команду migrations:generate
.
Миграции можно хранить с помощью VCS или передавать любым удобным способом. При возникновении необходимости обновить
структуру используется команда migrations:migrate
.
Настройки в файле config.inc.php
Параметры соединения С БД
username
- Имя пользователя БДpassword
- Пароль пользователя БДdsn
- DSN строка для соединения с БД c помощью PDOОбщие параметры
import_data
- (0|1) - Флаг, если включен позволяет использовать миграции для данныхtable_prefix
- Префикс таблиц. Только таблицы с указанным префиксом будут добавляться в миграции.conside_foreign_keys
- (0|1) - Флаг, учитывать ли в миграциях внешние ключи.conside_indexes
- (0|1) - Флаг, учитывать ли в миграциях индексы.Пути и форматы
migration_path
- Путь к директории с миграциямиschema_path
- Путь к директории со схемами ( и схемами данных )data_path
- Путь к директории с миграциями данныхversion_format
- (json) - формат хранения файлов версийschema_format
- (json) - формат хранения файлов схемmigration_format
- (json) - формат хранения файлов миграцийtime_format
- формат времени для именования миграцийlocal_version_file
- путь к файлу локальной версии (без расширения)global_version_file
- путь к файлу глобальной версии (без расширения)log_path
- путь к файлу с логамиlog_file
- имя файла логовСписки
import_data_tables
- список таблиц для которых будут создаваться миграции данных. Необхоимо явно указать таблицы (без префикса) для которых нужны такие миграции.
.gitignore
Если используется VCS GIT, то рекомендую настроить ваш .gitignore
файл соответствующим образом.
В общем случае игнорируйте файл config.inc.php
, однако оставьте файл config.inc.sample.php
для примера. Также
игнорируте файлы с префиксом local схем и версий. К роме того игнорируйте логи
Фичи и баги
- Будут учтены только таблицы с префиксом, который указан в конфиге, если не хотите использовать префикс укажите в
качестве значения настройки
table_prefix
пустую строку. - Для того чтобы иметь возможность переименовывать таблицы и столбцы добавляйте к ним комментарий. Пример: вы хотите
переименовать таблицу
users
вmy_users
. В начале добавьте комментарий к таблице (любой), выполните командуmigrations:generate
затем переименуйте таблицу и вновь выполнитеmigrations:generate
в противном случае будет произведено удаление таблицыusers
и создание таблицыmy_users
. - Миграции данных рекомендуется использовать на таблицах с первичным ключем. Это ускоряет запросы и экономит место, так так в таком случае можно однозначно идентифицировать строку по первичному ключу.
- На данный момент компонент работает только с кодировкой utf-8 и принудительно при соединении с БД задает команду
SET NAMES utf-8