shasoft / db-schema
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`