11

我有一个 Drupal 多站点,每个站点需要一个数据库,并希望它在 ddev 中运行,但 ddev 默认只有一个数据库,名为“db”。如何获得第二个数据库?

4

2 回答 2

31

您可以直接使用ddev import-db --target-db=newdb. 创建的数据库将已经具有权限等。

您还可以手动创建和管理数据库(尽管这不再是必需的了)。db 服务器的 root 密码是“root”,所以你可以mysql -uroot -proot在那里(或使用ddev mysql -uroot -proot)。

  • ddev mysql -uroot -proot
  • CREATE DATABASE newdb;
  • GRANT ALL ON newdb.* to 'db'@'%' IDENTIFIED BY 'db';
  • 现在,如果您想从数据库转储中加载,ddev import-db --target-db=newdb --src=dumpfile.sql
  • 您的普通网络用户现在可以访问这个备用数据库,并且可以在您的备用多站点的 settings.php 中使用它。
  • 您还想为您的 Drupal 多站点做许多其他事情;在https://github.com/drud/ddev-contrib/tree/master/recipes/drupal8-multisite有一个完整的教程

有关数据库管理的更多详细信息,请访问https://ddev.readthedocs.io/en/latest/users/topics/database_management/

于 2018-04-11T21:58:27.160 回答
6

除了 rfay 回答之外,最后一个链接中使用的技巧正是我想要提出的以及我目前正在使用的:

将此钩子添加到 config.yml 文件

hooks:
  post-start:
  - exec: mysql -uroot -proot -hdb -e "CREATE DATABASE IF NOT EXISTS second_db; GRANT
      ALL ON second_db.* TO 'db'@'%';"

并使用参数将数据加载到第二个数据库--target-db

ddev import-db --target-db=second-db --src=second-db.sql

于 2020-06-02T14:50:42.820 回答