我有一个drupal多站点,每个站点需要一个数据库,并且希望它在ddev中运行,但是ddev默认只有一个数据库,名为“db”。如何获取第二个数据库?
vx6bjr1n1#
除了rfay answer,最后一个链接中使用的技巧正是我想提出的和我目前正在使用的:将此钩子添加到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'@'%';"
并使用param将数据加载到第二个数据库 --target-db : ddev import-db --target-db=second-db --src=second-db.sql
--target-db
ddev import-db --target-db=second-db --src=second-db.sql
ewm0tg9j2#
更新日期:2020-06-02:在最新版本的ddev中,您可以使用直接导入其他数据库 ddev import-db --target-db=newdb . 已创建的数据库将已具有权限等。剩下的答案已经被编辑成最新的。。。您还可以手动创建和管理数据库(尽管这已不再是必需的)。db服务器的根密码是“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 您的普通web用户现在可以访问这个备用数据库,并且可以在备用多站点的settings.php中使用它。您还需要为您的drupal multisite做许多其他事情;这里有完整的教程https://github.com/drud/ddev-contrib/tree/master/recipes/drupal8-multisite
ddev import-db --target-db=newdb
mysql -uroot -proot
ddev mysql -uroot -proot
GRANT ALL ON newdb.* to 'db'@'%' IDENTIFIED BY 'db';
ddev import-db --target-db=newdb --src=dumpfile.sql
2条答案
按热度按时间vx6bjr1n1#
除了rfay answer,最后一个链接中使用的技巧正是我想提出的和我目前正在使用的:
将此钩子添加到config.yml文件
并使用param将数据加载到第二个数据库
--target-db
:ddev import-db --target-db=second-db --src=second-db.sql
ewm0tg9j2#
更新日期:2020-06-02:在最新版本的ddev中,您可以使用直接导入其他数据库
ddev import-db --target-db=newdb
. 已创建的数据库将已具有权限等。剩下的答案已经被编辑成最新的。。。
您还可以手动创建和管理数据库(尽管这已不再是必需的)。db服务器的根密码是“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
您的普通web用户现在可以访问这个备用数据库,并且可以在备用多站点的settings.php中使用它。您还需要为您的drupal multisite做许多其他事情;这里有完整的教程https://github.com/drud/ddev-contrib/tree/master/recipes/drupal8-multisite