shasoft / db-schema
Versioning/migrating database changes
v2.0.1
2024-01-22 13:04 UTC
Requires (Dev)
README
Простой пример определения таблицы БД:
#[Title('Таблица для примера')] class TabExample { #[Title('Идентификатор')] protected ColumnId $id; #[Title('Имя')] protected ColumnString $name; // Первичный ключ #[Columns('id')] protected IndexPrimary $pkKey; }
В данном примере через класс TabExample определяется таблица, содержащая два поля и один индекс. Миграции для указанного примера создаются следующим образом:
// Получить миграции $migrations = DbSchemaMigrations::get([ // Класс таблицы TabExample::class, ], // Драйвер для получения миграций DbSchemaDriverMySql::class ); // Создать PDO соединение $pdo = new \PDO( 'mysql:dbname=cmg-db-test;host=localhost', 'root' ); // Выполнить миграции $migrations->run($pdo);
В результате выполнения миграций в БД создастся таблица БД с помощью следующего SQL кода
CREATE TABLE `tabexample`( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Идентификатор', `name` VARCHAR(255) NULL COMMENT 'Имя', PRIMARY KEY(`id`) USING BTREE ) COMMENT 'Таблица для примера';
Можно отменить последнии миграции с помощью следующего кода
// Отменить последнии миграции $migrations->cancel($pdo);
эти миграции будут отменены с помощью следующего SQL кода
DROP TABLE IF EXISTS `tabexample`