Drupal 8:从现有配置安装站点
当运行测试或没有数据库副本时,通过配置安装Drupal站点非常有用。您将获得Drupal网站的副本,其中没有任何内容与实时网站的行为相同。您可以使用默认内容之类的模块将内容添加到混音中,以便新安装的站点的行为有点像实时版本。
由于有一些先决条件才能启动和运行它,所以我想我会逐步了解如何使其开始工作以及如何运行它。
安装配置文件兼容性
首先,hook_install()关于安装配置文件的钩子存在一个小问题,这意味着您需要使用不包含安装配置文件的安装配置文件。这样做的原因是,在完成安装,导入配置和所需的模块后,安装挂钩将触发并可能更改刚刚安装的配置。为了限制更改的复杂性和范围,决定仅拒绝hook_install()使用包含挂钩的配置文件的功能。
如果您使用标准配置文件安装了网站(可能是这种情况),则会看到类似的错误。
Configuration install: standard The selected profile has a hook_install() implementation and therefore can not be installed from configuration.
交换站点以使用最小配置文件使用最小安装配置文件或任何其他没有hook_install()钩子的安装配置文件。要在配置中执行此操作,您只需要打开core.extension.yml文件并在已安装模块的列表中更改配置文件设置和配置文件名称即可。即使它不是一个模块,它仍然会出现在这里,因此您需要更改两个实例。
您需要从以下更改core.extension.yml文件:
menu_link_content: 1 pathauto: 1 content_translation: 10 views: 10 paragraphs: 11 standard: 1000 theme: stable: 0 classy: 0 bartik: 0 seven: 0 adminimal_theme: 0 profile: standard _core: default_config_hash: .....
对此:
menu_link_content: 1 pathauto: 1 content_translation: 10 views: 10 paragraphs: 11 minimal: 1000 theme: stable: 0 classy: 0 bartik: 0 seven: 0 adminimal_theme: 0 profile: minimal _core: default_config_hash: .....
交换“标准”为“最小”。
顺便说一句,看来此要求将从将来的Drupal版本中删除(可能从9.1.0开始)。有关Drupal.org更多信息,请参见此问题。
导出配置
如果已经导出了配置,则可以跳过此步骤。
确保在站点settings.php文件中设置了config_sync_directory设置。这是Drupal所必需的,它可以知道您的配置将存放在哪里。
$settings['config_sync_directory']='../config/sync';
设置好位置并创建目录后,使用drush导出配置。
drushcex
这会将您的Drupal配置放到位于../config/sync的目录中。
运行安装
现在,您可以使用site:installdrush命令以及--existing-config标志完全从头开始安装该站点。
drushsite:install--existing-config
这将删除数据库中的所有表,并使用以前导出的配置重新安装站点。
这是正在运行的命令的一些示例输出。
$ drush site:install --existing-config You are about to: * DROP all tables in your 'drupal' database. Do you want to continue? (yes/no) [yes]: > yes [notice] Starting Drupal installation. This takes a while. [notice] Performed install task: install_select_language [notice] Performed install task: install_select_profile [notice] Performed install task: install_load_profile [notice] Performed install task: install_verify_requirements [notice] Performed install task: install_write_profile [notice] Performed install task: install_verify_database_ready [notice] Performed install task: install_base_system [notice] Performed install task: install_bootstrap_full [notice] Performed install task: install_config_import_batch [notice] Performed install task: install_config_download_translations [notice] Performed install task: install_config_revert_install_changes [notice] Performed install task: install_configure_form [notice] Cron run completed. [notice] Performed install task: install_finished [success] Installation complete. User name: admin User password: ....
如果要查看从现有配置安装Drupal的原始更改记录。