edisonlabs/database_sanitize

提供用于yaml清理文件检查和生成的drush命令。

安装数量: 1,303,015

依赖关系: 0

建议者: 0

安全性: 0

星标: 5

关注者: 8

分支: 6

开放问题: 4

类型:drupal-module

dev-8.x-1.x 2019-10-28 15:56 UTC

README

Build Status

数据库清理

概述

提供一组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编码标准违规。

在本地开发中运行测试

您需要

  1. 运行composer install。
  2. vendor/drush/drush目录中运行composer install。
  3. 在包的根目录中,运行此命令,并根据您的数据库配置调整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/