myaghobi/f3-migrations

为 Fat-Free 框架提供数据库助手插件。

v2.0.1 2021-07-06 21:23 UTC

This package is auto-updated.

Last update: 2024-09-20 12:05:17 UTC


README

F3-Migrations 是 Fat-Free 框架的数据库助手插件。它类似于 sql 数据库的版本控制。每次您需要在数据库中手动进行一些更改时,您都可以创建一个 MigrationCase,然后插件将处理这些更改。

安装

如果您使用 composer,请运行以下代码

composer require myaghobi/f3-migrations

手动安装

  1. lib/ 文件夹的内容复制到您的 lib/ 文件夹。
  2. 按照其文档中所述安装 Schema Builder
  3. 安装 Html2Text,将 html2text.php 放在您的 lib/ 文件夹中名为 html2text 的文件夹内。

操作和基本用法

该插件提供了一个简单的网络界面,由 4 个路由组成,将自动添加到您的应用程序中

  • GET /migrations 显示网络界面
  • GET /migrations/@action 触发一个操作
  • GET /migrations/@action/@target 为操作指定特定目标版本
  • GET /migrations/theme/@type/@file 如果您将 UI 目录存储在不可访问的路径中,可以检索 CSS/JS 文件(推荐)

它还会在您的数据库中创建一个名为 migrations 的表来处理迁移。

实例化

f3->run() 之前实例化 Migrations 类。如果 DEBUG>=3,则插件将正常工作,否则由于安全问题和避免资源使用而禁用。要与 Migrations 一起工作,您需要一个活动的 SQL 连接

// require('vendor/autoload.php');
// $f3=Base::instance();
$f3=require('lib/base.php');
...
// Acording to f3-schema-builder
// MySQL, SQLite, PostgreSQL & SQL Server are supported
$db = new \DB\SQL('mysql:host=localhost;port=3306;dbname='.$DBName, $user, $pass);
...
\DB\MIGRATIONS\Migrations::instance($db);
$f3->run();

首次迁移

  1. 确保您的案例目录的路径存在且安全。
  2. 在浏览器中调用 yourAppPublicUrl/migrations
  3. 使用 makecase 操作创建您的第一个迁移案例。
  4. 调用 migrate 操作。

配置

此插件可以通过配置文件进行配置

[migrations]
ENABLE=true
; PATH relative to `index.php`
PATH=../migrations
SHOW_BY_VERSOIN=true
CASE_PREFIX=migration_case_
LOG=true

上述配置是默认设置,您可以忽略/删除不需要更改的每个配置。

日志记录

您可以在 LOGS 文件夹中找到操作日志,位于 migrations.log

CLI 模式

只需运行以下代码即可

php index.php /migrations

升级

  1. 首先通过 composer 或手动更新插件。
  2. 现在迁移案例的路径相对于 index.php,因此请确保其存在。
  3. 备份您的数据库和迁移案例。
  4. 调用 upgrademc 操作以更新旧的迁移案例。

最后调用 fresh 操作。

许可证

您可以在 GNU 通用公共许可证版本 3 或更高版本的情况下使用此插件。

版权(C)2021 Mohammad Yaghobi