edisonlabs / database_sanitize
提供用于yaml清理文件检查和生成的drush命令。
dev-8.x-1.x
2019-10-28 15:56 UTC
Requires
Requires (Dev)
- drush/drush: ~8.1.17
This package is auto-updated.
Last update: 2024-09-15 13:04:53 UTC
README
数据库清理
概述
提供一组drush命令,以辅助生成包含所有数据库清理查询的database.sanitize.yml
文件。
包含的命令
db-sanitize-analyze (dbsa)
将站点安装上现有的database.sanitize.yml
文件与现有的数据库表进行比较,并列出需要验证和可能需要清理的表。db-sanitize-generate (dbsg)
为未在database.sanitize.yml
文件中指定的所有表生成database.sanitize.yml
文件。
使用--file
选项指定YML文件并跳过扫描。这旨在与merge-yaml composer插件一起使用,以便在构建drupal站点的本地环境时,将生成一个database.sanitize.merge.yml
文件。该文件的路径是您需要传递的路径。
使用说明
您可以为您的模块或配置提供包含数据库清理查询的database.sanitize.yml
文件。
文件格式
sanitize:
MACHINE_NAME:
DBTABLENAME1:
description: 'query description'
query: 'DB QUERY 1'
DBTABLENAME2:
description: 'query description'
query: 'DB QUERY 2'
MACHINE_NAME2:
DBTABLENAME3:
description: 'query description'
query: 'DB QUERY 3'
DBTABLENAME4: false
DBTABLENAMEPREFIX*: false
支持使用通配符*
来指定表名。例如,设置node_revision*
将应用于所有以node_revision
开头的表名。
命令使用
要找出需要在database.sanitize.yml
文件中定义多少个表
drush dbsa
# Specifying a file.
drush dbsa --file=/var/www/SITE/NON-PUBLIC-FOLDER/database.sanitize.merge.yml
要获取缺失表以进行清理的YAML文件内容
drush dbsg --machine-name="my_module"
要将缺失的表保存到database.sanitize.yml
文件中
drush dbsg --machine-name="MY_profile" > docroot/profiles/MY_profile/database.sanitize.yml
对于每个缺失的表生成的查询默认为TRUNCATE TABLE $table
。开发者需要评估每个表应清理的内容,并相应地编辑文件。
自动化测试和代码检查器
此存储库已集成Travis CI以执行测试并检测Drupal编码标准违规。
在本地开发中运行测试
您需要
- 运行composer install。
- 在
vendor/drush/drush
目录中运行composer install。 - 在包的根目录中,运行此命令,并根据您的数据库配置调整
UNISH_DB_URL
。
UNISH_DB_URL="mysql://USERNAME:PASSWORD@127.0.0.1" UNISH_NO_TIMEOUTS=y vendor/drush/drush/vendor/bin/phpunit --configuration "vendor/drush/drush/tests" drush/tests/