merakilab/meraki-data-safety
Composer 安装命令:
composer require merakilab/meraki-data-safety
包简介
Data backup & restore safety layer for Laravel migrations
README 文档
README
Purpose
Merika helps to manage the version of data
Preparation
composer require merakilab/meraki-data-safety
Backup / restores a full table before migration down
use Meraki\DataSafety\Traits\MigrationDataSafety; return new class extends Migration { use MigrationDataSafety; const BACKUP_VERSION = '2026_01_03'; /** * Run the migrations. */ public function up(): void { Schema::create('table_name', function (Blueprint $table) { $table->id(); $table->string('col1'); $table->timestamps(); }); //Sync data backup to the table (if exists) $this->restoreTable('table_name', ['id'], self::BACKUP_VERSION); DB::statement("SELECT setval('table_name_id_seq', (SELECT MAX(id) FROM table_name))"); } /** * Reverse the migrations. */ public function down(): void { //Backup before drop table $this->backupTable('table_name', ['id'], self::BACKUP_VERSION); Schema::dropIfExists('table_name'); } };
Backup / restore data from columns
use Meraki\DataSafety\Traits\MigrationDataSafety; return new class extends Migration { use MigrationDataSafety; const BACKUP_VERSION = '2026_01_04_1754'; /** * Run the migrations. */ public function up(): void { DB::transaction(function () { if (!Schema::hasColumns('table_name', ['col2', 'col3'])) { Schema::table('table_name', function (Blueprint $table) { $table->enum('col2', ['val1', 'val2'])->default("val1"); $table->string('col3')->nullable(); }); $this->restoreColumn('table_name', ['id'], ['col2', 'col3'], self::BACKUP_VERSION); } if (!Schema::hasColumns('table_name', ['col1'])) { $this->backupColumn('table_name', ['id'], ['col1'], self::BACKUP_VERSION); Schema::table('table_name', function (Blueprint $table) { $table->dropColumn('col1'); }); } }, attempts: 5); } /** * Reverse the migrations. */ public function down(): void { if (Schema::hasColumns('table_name', ['col2', 'col3'])) { $this->backupColumn('table_name', ['id'], ['col2', 'col3'], self::BACKUP_VERSION); Schema::table('table_name', function (Blueprint $table) { $table->dropColumn(['col2', 'col3']); }); } if (!Schema::hasColumns('table_name', ['col1'])) { Schema::table('table_name', function (Blueprint $table) { $table->date('col1'); }); $this->restoreColumn('table_name', ['id'], ['col1'], self::BACKUP_VERSION); } } };
merakilab/meraki-data-safety 适用场景与选型建议
merakilab/meraki-data-safety 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 0 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 merakilab/meraki-data-safety 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 merakilab/meraki-data-safety 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 28
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-01-04