bixev/migrations

Bixev 数据库迁移库

1.2.1 2019-02-06 09:01 UTC

This package is auto-updated.

Last update: 2024-09-13 13:49:11 UTC


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);