bixev / migrations
Bixev 数据库迁移库
1.2.1
2019-02-06 09:01 UTC
Requires
- php: >=7.2
- bixev/light-logger: >=1.0.0
README
此迁移将帮助您更新数据库,以适应源代码的新版本
安装
建议您使用 Composer 安装 InterventionSDK。
composer require bixev/migrations "~1.0"
这将安装此库及其所有必需的依赖项。
因此,每个 PHP 脚本都需要引入 composer 自动加载文件
<?php require 'vendor/autoload.php';
用法
基本用法
使用指定的或自定义迁移存储。它将存储您的迁移版本。
$migrationsStore = new \Bixev\Migrations\VersionStore\MysqlVersionStore(); $migrationsStore->setDb(new PDO(''), 'table_name');
实例化迁移 API
$migrationsApi = new \Bixev\Migrations\API($migrationsStore);
您必须为 API 提供与迁移文件扩展名相同数量的更新器
$migrationsApi->setUpdater('php', new \Bixev\Migrations\Updater\PhpUpdater()); $mysqlUpdater = new \Bixev\Migrations\Updater\MysqlUpdater(); $mysqlUpdater->setQueryExecutor( function ($query) use ($pdoMysql) { $replacements = ['${DEFAULT_ENGINE}' => 'pouet']; $query = str_replace(array_keys($replacements), array_values($replacements), $query); $pdoMysql->query($query); } ); $migrationsApi->setUpdater('sql', $mysqlUpdater);
然后,只需使用命名空间和更新目录进行更新
$migrationsApi->update('namespace', 'update/directory');
日志
您可以使用记录器记录更新信息。
$logger = new \Bixev\LightLogger\StdLogger(); $migrationsStore = new \Bixev\Migrations\VersionStore\MysqlVersionStore($logger); $migrationsApi = new \Bixev\Migrations\API($migrationsStore, $logger);