备份和恢复 Pimcore 项目

安装: 23,244

依赖项: 0

建议者: 0

安全性: 0

星标: 12

关注者: 5

分支: 5

开放问题: 1

类型:pimcore-bundle

v1.3.1 2022-11-15 16:00 UTC

This package is auto-updated.

Last update: 2024-09-09 12:46:20 UTC


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:restorebackup:sync命令的每个步骤后触发
  • backup.restore.finished - 在完成backup:restorebackup:sync命令后触发

关于Blackbit

除了这个Pimcore插件,Blackbit还提供其他组件、个性化开发、咨询和托管服务,以满足您的Pimcore项目需求