shasoft/db-schema

版本控制/数据库更改迁移

v2.0.1 2024-01-22 13:04 UTC

This package is auto-updated.

Last update: 2024-09-22 14:19:31 UTC


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`

更多信息