andreas-a / backup-database-bundle
一个提供命令以轻松备份数据库的 Symfony 扩展包。
1.0.2
2022-09-02 06:22 UTC
Requires
- php: ^7.3 || ^8.0
- symfony/config: ^4.3 || ^5.0 || ^6.0
- symfony/console: ^4.3 || ^5.0 || ^6.0
- symfony/dependency-injection: ^4.3 || ^5.0 || ^6.0
- symfony/filesystem: ^4.3 || ^5.0 || ^6.0
- symfony/framework-bundle: ^4.3 || ^5.0 || ^6.0
- symfony/http-kernel: ^4.3 || ^5.0 || ^6.0
- symfony/process: ^4.3 || ^5.0 || ^6.0
- symfony/yaml: ^4.3 || ^5.0 || ^6.0
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
。它使用上述配置来创建数据库备份,例如可以在部署期间使用。