wearejh / stripped-db-provider
Magento 2 的 Stripped DB Provider
Requires
- php: >=8.1.0
- aws/aws-sdk-php: ^3.112.0
- ifsnop/mysqldump-php: ^2.12
This package is auto-updated.
Last update: 2024-09-14 09:04:24 UTC
README
此模块可以配置为自动将清理后的数据库定期发送到云中的 Amazon S3 Bucket。
安装
将以下仓库添加到您的 composer.json
文件的 repositories
部分
{"type": "vcs", "url": "git@github.com:WeareJH/stripped-db-provider.git"},
然后像安装任何常规的 composer 包一样安装
composer require wearejh/stripped-db-provider
配置
有两个配置区域。第一个是项目特定配置,在 config.php 中设置并提交到仓库。第二个是环境特定配置,直接在服务器上的 env.php 文件中添加。
项目特定配置
默认情况下,所有数据库都会被清理,但您可以通过在您的 config.php 文件中添加以下内容来定义项目特定的表,这些表的数据不应包含在备份中:
'system' => [
'default' => [
'stripped_db_provider' => [
'dump' => [
'project_ignore_tables' => ['example_table_a', 'example_table_b']
]
]
]
]
其中 project_ignore_tables
是项目特定表列表。
环境特定配置
安装并部署到生产环境后,您将希望配置它以便自动将清理后的数据库发送到 S3 Bucket。您需要添加加密的 access_key_id & secret_access_key。因此,您可以在管理员中提及这些值,它们将自动加密这些值。手动编辑 env.php 文件并设置以下配置(以下值是示例):
'system' => [
'default' => [
'stripped_db_provider' => [
'general' => [
'enabled' => '1',
'project_name' => 'example-project',
'cron_expr' => '0 4 * * 0'
],
'storage' => [
'bucket_name' => 'example-bucket-name',
'region' => 'example-bucket-region',
'access_key_id' => 'example-bucket-access-key',
'secret_access_key' => 'example-bucket-secret-access-key'
]
]
]
]
您也可以通过登录管理员从管理员处添加 access_key_id、secret_access_key、bucket_name、region。如果找不到它或需要帮助设置,请咨询您的同事。
以下表格描述了值:
Amazon S3 Bucket 详细信息应在 LastPass 中。如果您找不到或需要帮助设置,请咨询您的同事。
编辑 env.php 文件后,立即运行以下命令:
bin/magento app:config:import
手动运行上传
您还可以通过在命令行中运行以下命令手动触发清理数据库的上传:
bin/magento wearejh:stripped-db-provider:upload-to-remote
进行完整的数据库备份
bin/magento wearejh:stripped-db-provider:upload-to-remote --full
本地导入远程备份
您可以使用此模块直接从 S3 导入远程备份到本地。它将备份您的本地管理员账户并重新导入它们。
bin/magento wearejh:stripped-db-provider:import-from-remote PROJECT NAME
跳过管理员账户备份
bin/magento wearejh:stripped-db-provider:import-from-remote PROJECT NAME --no-admin-backup=1
配置备份
config-backup
选项接受 3 个值:
- skip - 跳过本地配置的备份并从远程导入所有内容
- merge - 仅备份
stripped_db_provider/dump/config_paths_keep
下配置的路径(接受 MySQL 通配符%
),从远程导入所有内容并将备份的配置与远程配置合并 - preserve-local - 备份整个
core_config_data
并在从远程导入数据库后恢复它
bin/magento wearejh:stripped-db-provider:import-from-remote PROJECT NAME --config-backup=merge
问题 / 功能请求
请为遇到的任何问题或想要看到的功能请求在 github 上打开问题。当然欢迎 PR。
故障排除
如果任何项目已安装此模块的 0.3.3 版本,在升级模块到最新版本时遇到与模块:ifsnop/mysqldump-php ^2.12 相关的依赖错误,请从项目根目录的 composer.json 文件中删除以下行:{"type": "vcs", "url": "git@github.com:maciejslawik/mysqldump-php.git"}