andreas-a/backup-database-bundle

一个提供命令以轻松备份数据库的 Symfony 扩展包。

安装数: 5,579

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:symfony-bundle

1.0.2 2022-09-02 06:22 UTC

This package is auto-updated.

Last update: 2024-08-30 01:55:15 UTC


README

一个提供命令以轻松备份数据库的 Symfony 扩展包。

注意:目前只支持 MySQL。它还应支持 MariaDB,但这尚未经过验证。

要求

  • 查看 composer.json 以了解大部分依赖项。
  • 类 Unix 操作系统。
  • 以下命令
    • mkfifo
    • mysqldump
    • bzip2
  • 目前,上述命令必须在当前路径配置中全局可用,以便在 symfony/process 组件所用的相应 shell 中调用,而无需要求绝对路径。

设置

  • 如果尚未由 symfony/flex 添加,请将 AndreasA\BackupDatabaseBundle\AndreasABackupDatabaseBundle::class => ['all' => true] 添加到 config/bundles.php
  • 添加文件 config/packages/andreas_a_backup_database.yaml,内容如下(示例配置)
    andreas_a_backup_database:
        database_url: '%env(resolve:DATABASE_URL)%'
        target_directory: '%kernel.project_dir%/var/backup'
        mysql:
            ignored_tables:
                - 'cache_items'
            options:
                - 'default-character-set=utf8mb4'
                - 'hex-blob'
                - 'no-tablespaces'
                - 'opt'
                - 'routines'
                - 'triggers'
            platform_specific_options:
                - 'column-statistics=0'
                - 'skip-column-statistics'

配置

  • database_url:数据库的 URL。
  • target_directory:备份文件放置的目录。这些文件包含它们的文件名中的当前日期和时间。
  • mysql:MySQL 备份的特定选项。
    • ignored_tables:在备份期间要忽略的表。也可以设置为 [],如果不应该忽略任何表。
    • options:这些选项在备份期间使用,并使用 MySQL 配置文件语法提供。必须支持这些选项的 mysqldump 命令。也可以设置为 [],如果不需要额外的选项。
    • platform_specific_options:基本上与 options 相同,但在这里,bundle 首先检查 mysqldump 命令是否支持这些选项。如果您不知道使用的 mysqldump 版本,这很重要。也可以设置为 [],如果不需要平台特定选项。

命令

该扩展包提供了 Symfony 命令 andreas-a:backup:database。它使用上述配置来创建数据库备份,例如可以在部署期间使用。