如何使用现有数据库安装 Drupal 8?

How to install Drupal 8 with an existing database?

我想使用 CLI 使用先前安装的现有数据库安装 Drupal 8(为了能够自动化该过程,在我构建 Docker 容器的情况下) .

因此,我首先执行 composer,但随后我需要另一个命令来使用现有数据库配置安装。

我注意到 drush 有一个 site-install 命令,它接受与数据库相关的选项,但我测试了它,这只是为了设置数据库详细信息并创建一个新数据库。

在 Drupal 控制台中,我们现在可以使用 new option --defaultsettings.php 文件中自动设置默认数据库详细信息:

drupal database:add \
  --database=DATABASE \
  --username=USERNAME \
  --password=PASSWORD \
  --default

由于 hash_salt 变量也必须在 settings.php 文件中设置,就像在手动安装中一样,我们需要使用 drush:

drush php:eval '
  include_once DRUPAL_ROOT . "/core/includes/install.inc";
  $settings["settings"]["hash_salt"] = (object) [
    "value"    => \Drupal\Component\Utility\Crypt::randomBytesBase64(55),
    "required" => true,
  ];
  drupal_rewrite_settings($settings);
'

安装和维护 Drupal 8 网站的推荐方法是使用 composer:

https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies#download-core

然后你必须添加你之前使用的所有模块 - 也使用 composer 来安装它们。

然后只需将旧数据库导入新数据库即可(如果您更喜欢控制台 mysql 命令即可,但 drush 也是有效选项)。