myaghobi/ f3-migrations
为 Fat-Free 框架提供数据库助手插件。
v2.0.1
2021-07-06 21:23 UTC
Requires
- bcosca/fatfree-core: ^3.6
- html2text/html2text: ^4.3.1
- ikkez/f3-schema-builder: ^2.2.4
README
F3-Migrations 是 Fat-Free 框架的数据库助手插件。它类似于 sql 数据库的版本控制。每次您需要在数据库中手动进行一些更改时,您都可以创建一个 MigrationCase,然后插件将处理这些更改。
安装
如果您使用 composer,请运行以下代码
composer require myaghobi/f3-migrations
手动安装
- 将
lib/文件夹的内容复制到您的lib/文件夹。 - 按照其文档中所述安装 Schema Builder。
- 安装 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();
首次迁移
- 确保您的案例目录的路径存在且安全。
- 在浏览器中调用
yourAppPublicUrl/migrations。 - 使用
makecase操作创建您的第一个迁移案例。 - 调用
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
升级
- 首先通过 composer 或手动更新插件。
- 现在迁移案例的路径相对于
index.php,因此请确保其存在。 - 备份您的数据库和迁移案例。
- 调用
upgrademc操作以更新旧的迁移案例。
最后调用 fresh 操作。
许可证
您可以在 GNU 通用公共许可证版本 3 或更高版本的情况下使用此插件。
版权(C)2021 Mohammad Yaghobi