jalameta / jps-patcher
Requires
- illuminate/console: ^7.0
- illuminate/database: ^7.0
This package is auto-updated.
Last update: 2022-08-02 14:06:25 UTC
README
一个用于燃烧生产更新(迁移类似)的补丁工具。
已测试于
- Laravel: 6.* | 7.* | 8.*
背景
我们的团队在项目中犯了一个愚蠢的错误,影响了数据库。这种情况已经发生多次,我们通常去修改或直接编辑数据库来修复这些问题。问题是我们需要记录这些更改,所以我们创建了此包。此外,我们有时需要为我们的应用程序批量插入用户,所以 补丁 将是最好的解决方案。
安装
执行以下方法中的任意一种。
- 通过 shell
composer require jalameta/jps-patcher
- 将
"jalameta/jps-patcher": "^2.0"
添加到composer.json
{ "require": { "jalameta/jps-patcher": "^2.0" } }
安装后
此过程是可选的,您可以选择跳过。
-
应用到您的项目中。
-
Laravel >= 5.8
- 自动加载 :)
-
Laravel <= 5.8
- 将
\Jalameta\Patcher\PatcherServiceProvider
添加到config/app.php
中的providers
数组。
- 将
-
-
创建 patches 表。
php artisan patcher:install
用法
创建新补丁
要创建新补丁,只需运行以下命令
php artisan make:patch what_do_you_want_to_patch
等等,这让你感觉熟悉吗?我们也是。事实是,这个包扩展了 Laravel 迁移。
运行这些命令后,您将在 patches
文件夹中看到新文件。这些文件将类似于
<?php use Jalameta\Patcher\Patch; class WhatDoYouWantToPatch extends Patch { /** * Run patch script. * * @return void * @throws \Exception */ public function patch() { // } }
这些文件中的 patch
方法将填充您的逻辑。在 Jalameta\Patcher\Patch
中,有一些有用的属性可以帮助您支持补丁,例如
-
$container: \Illuminate\Container\Container
-
$command: \Illuminate\Console\Command
我们经常使用
$command
属性来打印我们正在执行的过程。例如$this->command->warn('i patch something danger!'); $this->command->confirm('do you wish to continue?');
您可以在 这里 了解更多关于
\Illuminate\Console\Command
的信息。 -
$logger: \Illuminate\Log\Logger
$logger
将日志存储在storage/logs/patches.log
中。如果您想更改它,请在您的config/logging.php
中的 channels 部分添加以下行。[ 'channels' => [ 'patcher' => [ 'driver' => 'patcher', // you can change me if you want 'path' => storage_path('logs/patches.log'), // change me ], ], ];
您可以在 这里 了解更多关于
\Illuminate\Log\Logger
的信息。
显示补丁状态
php artisan patcher:status
示例
my_project on master [$!] via ⬢ v14.14.0 via 🐘 v7.4.11 on 🐳 v19.03.13 ➜ php artisan patcher:status +------+---------------------------------------+-------+ | Ran? | Patch | Batch | +------+---------------------------------------+-------+ | Yes | 2020_09_29_190531_fix_double_sections | 1 | | Yes | 2020_10_09_124616_add_attachment_beep | 1 | +------+---------------------------------------+-------+
运行补丁(补丁集)
php artisan patcher:run
示例
my_project on master [$!] via ⬢ v14.14.0 via 🐘 v7.4.11 on 🐳 v19.03.13
➜ php artisan patcher:status
Patches table created successfully.
Patching: 2020_09_29_190531_fix_double_sections
Patched: 2020_09_29_190531_fix_double_sections (0.03 seconds)
Patching: 2020_10_09_124616_add_attachment_beep
Patched: 2020_10_09_124616_add_attachment_beep (0.06 seconds)