watheqalshowaiter / backup-tables
轻松备份单个或多个数据库表。
Requires
- php: >=7.4
- illuminate/contracts: ^11.0||^10.0||^9.0||^8.0||^7.0||^6.0||^5.0
Requires (Dev)
- nunomaduro/collision: ^8.1.1||^7.10.0||^6.0||^5.0||^4.0||^3.2
- orchestra/testbench: ^9.0.0||^8.22.0||^7.0||^6.0||^5.0||^4.0
README
备份表
轻松备份单个或多个数据库表。
注意:如果您需要具有许多功能的完整数据库备份,请使用 Spatie Laravel Backup。
安装
您可以通过Composer安装此包
composer require watheqalshowaiter/backup-tables
用法
您可以在应用程序的任何地方使用BackupTables::generateBackup($tableToBackup) Facade,它将在数据库中生成$tableToBackup_backup_2024_08_22_17_40_01表,包含所有数据和结构。请注意,日期时间2024_08_22_17_40_01将根据您的日期时间变化。
use WatheqAlshowaiter\BackupTables\BackupTables; // import the facade class ChangeSomeData { public function handle() { BackupTables::generateBackup('users'); // will result: users_backup_2024_08_22_17_40_01 // change some data.. } }
更多自定义
- 您可以使用数组备份多个表
BackupTables::generateBackup(['users', 'posts']); // users_backup_2024_08_22_17_40_01 // posts_backup_2024_08_22_17_40_01
- 或添加类作为参数,它将备份它们的表
BackupTables::generateBackup(User::class); // users_backup_2024_08_22_17_40_01 // or BackupTables::generateBackup([User::class, Post::class]); // users_backup_2024_08_22_17_40_01, posts_backup_2024_08_22_17_40_01
- 您可以将$dataTime格式自定义为您想要的任何格式
BackupTables::generateBackup('users', 'Y_d_m_H_i'); // users_backup_2024_22_08_17_40
**注意**:请注意,如果将日期时间自定义为宽日期时间,则包将检查备份日期时间文件,并且将跳过确切的相同日期时间,所以大多数情况下默认值将足够好。例如:如果您使用此
Y_d_m_H,则不能在相同的小时内生成相同的备份
BackupTables::generateBackup('users', 'Y_d_m_H'); // can not generate the same backup in the same hour BackupTables::generateBackup('users', 'Y_d_m'); // can not generate the same backup in the same day
为什么?
有时您可能需要出于某种原因在更改数据之前备份某些数据库表,此包满足此需求。我在添加外键之前个人使用了它,需要删除父表中的未连接字段。您可能会发现一些在处理表数据或在担心数据丢失的情况下,所以您事先备份这些表。
功能
✅ 支持Laravel版本:11、10、9、8、7和6。
✅ 支持PHP版本:8.2、8.1、8.0和7.4。
✅ 支持SQL数据库:SQLite、MySQL/MariaDB、PostgreSQL和SQL Server。
✅ 完全使用PHPUnit自动化测试。
✅ 完全GitHub Action CI管道格式化代码并对所有Laravel和PHP版本进行测试。
测试
composer test
变更日志
请参阅CHANGELOG以了解最近更改的更多信息。
贡献
如果您有任何改进或修复错误的想法或建议,您的贡献是受欢迎的。我鼓励您查看待办事项,这些是需要添加的最重要功能。如果您有不同之处,请首先提交一个问题以进行讨论或报告错误,然后进行拉取请求。
安全漏洞
如果您发现任何安全漏洞,请不要犹豫,通过watheqalshowaiter[at]gmail[dot]com与我联系以修复它们。
鸣谢
- Watheq Alshowaiter
- Omar Alalwi - 此包基于他的初始代码。
- 所有贡献者
并特别感谢The King Creative为标志✨
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。
