blackbit_digital_commerce / pimcore-backup
备份和恢复 Pimcore 项目
Requires
- php: >=7
- league/flysystem: 1.*|2.*|3.*
- league/flysystem-aws-s3-v3: *
- spatie/flysystem-dropbox: *
Requires (Dev)
- pimcore/pimcore: 5.*|6.*|10.*
README
此插件向 bin/console 添加了 3 个命令
backup:backup将所有必要的文件和数据库备份到一个文件中backup:restore根据之前保存的备份恢复 Pimcore 状态backup:sync在两个 Pimcore 系统之间复制数据库和文件(例如,用于从实时系统同步开发)
备份
几乎在同一时间备份文件和数据库非常重要,因为某些数据库条目引用文件(例如版本)而某些文件引用数据库列(例如数据对象字段)。因此,文件和数据库的备份是并行进行的。
可恢复的数据和日志不会包含在备份中,以保持文件大小较小。
默认情况下,备份文件在 /tmp 文件夹中创建。要更改此设置,请阅读有关 存储配置 的信息。
存储配置
支持多个存储提供者(本地存储、FTP、S3、Azure 等)。要配置备份的位置,您需要在您的 app/config/services.yml 中添加一个服务定义。
本地存储示例(路径应调整)
services: blackbit.backup.adapter: class: League\Flysystem\Local\LocalFilesystemAdapter arguments: $location: '/tmp'
AWS S3 存储示例
services: blackbit.backup.s3Client: class: Aws\S3\S3Client arguments: - { credentials: key: your-key secret: your-secret region: your-region version: latest } blackbit.backup.adapter: class: League\Flysystem\AwsS3V3\AwsS3V3Adapter arguments: ['@blackbit.backup.s3Client', 'your-bucket-name', 'optional/path/prefix']
请参阅其他配置选项的文档。
要使用其他存储提供者,请将 flysystem 适配器 添加到您的 composer.json,并根据文档配置 blackbit.backup.adapter。如果您需要帮助,请随时联系 help@blackbit.de。
与 Flysystem 1 兼容性
如果您不能使用 Flysystem 2(因为另一个依赖项需要 Flysystem 1),您仍然可以使用此捆绑包。在这种情况下,请在您的 app/config/services.yml 中添加以下配置
services: blackbit.backup.adapter: class: League\Flysystem\Adapter\Local arguments: ['/tmp']
或调整以适应其他 Flysystem 适配器。
备份执行
备份应定期保存。当您不带参数调用 bin/console backup:backup 时,备份归档文件将被命名为 backup_pimcore-YYYYMMDDhhmm.tar.gz(YYYYMMDDhhmm 被当前日期和时间替换)。或者,您可以通过提供类似 bin/console backup:backup backup.tar.gz 的参数来自定义名称。此插件不关心删除旧备份,因此请留意可用磁盘空间。
如果您只想备份数据库,可以使用 --only-database 选项。与默认的 mysqldump 命令执行相比的优势是,某些不重要、可以自动重新创建或临时的数据库表不会写入到备份中,从而在不造成任何缺点的情况下使文件大小更小。
如果您不需要版本数据,可以使用 --skip-versions 选项。如果您不需要资产,可以使用 --skip-assets 选项。
恢复
可以通过执行 bin/console backup:restore <filename> 来恢复备份。它使用上面描述的相同存储配置。
当您尝试恢复数据库并收到错误 ERROR 1419 (HY000): 您没有 SUPER 权限并且二进制日志已启用(您可能想使用更不安全的 log_bin_trust_function_creators 变量) 时,请启用 MySQL 设置中的 log_bin_trust_function_creators。当重新创建触发器、函数等时(即使捆绑包已从数据库备份中删除定义者),此消息会显示出来。
同步Pimcore系统之间的数据
当您想将一个Pimcore系统与另一个Pimcore系统进行同步时,可以使用backup:sync命令(在目标系统上执行)。您需要提供源系统的SSH凭证和远程Pimcore系统的Pimcore根目录路径,它将同步数据库和文件,同时保持/app/config中的当前配置。
示例调用:bin/console backup:sync user@hostname /var/www/html
要使此功能正常工作,源系统和目标系统必须安装此组件。
从Pimcore后端触发备份/同步
结合流程管理器组件,您可以直接从Pimcore后端触发备份、还原或与另一个Pimcore系统同步。
自定义
如果您想执行项目特定的操作,您可以使用事件监听器。以下事件将被触发:
backup.restore.stepFinished- 在执行backup:restore和backup:sync命令的每个步骤后触发backup.restore.finished- 在完成backup:restore和backup:sync命令后触发
关于Blackbit
除了这个Pimcore插件,Blackbit还提供其他组件、个性化开发、咨询和托管服务,以满足您的Pimcore项目需求。