source

ddev에서 두 번째 데이터베이스를 만들고 로드하려면 어떻게 해야 합니까?

factcode 2022. 10. 3. 17:35
반응형

ddev에서 두 번째 데이터베이스를 만들고 로드하려면 어떻게 해야 합니까?

Drupal 멀티사이트는 사이트마다 1개의 데이터베이스를 가지고 있으며, ddev에서 실행되도록 하고 싶은데 ddev에는 기본적으로 'db'라는 이름의 데이터베이스가 1개만 있습니다.다른 데이터베이스를 입수하려면 어떻게 해야 하나요?

추가 데이터베이스를 직접 Import할 수 있습니다.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';
  • DB 덤프에서 로드하려면ddev import-db --target-db=newdb --src=dumpfile.sql
  • 이제 일반 웹 사용자가 이 대체 DB에 액세스할 수 있으며 설정에서 사용할 수 있습니다.php를 클릭합니다.
  • Drupal 멀티사이트를 위해 당신이 하고 싶은 다른 많은 것들이 있습니다; 완전한 튜토리얼은 https://github.com/drud/ddev-contrib/tree/master/recipes/drupal8-multisite에 있습니다.

데이터베이스 관리에 대한 자세한 내용은 https://ddev.readthedocs.io/en/latest/users/topics/database_management/를 참조하십시오.

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'@'%';"

param을 사용하여 두 번째 데이터베이스에 데이터를 로드합니다.--target-db:

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

추가 생성 접근 방식이 마음에 듭니다.config.multisite.yaml여기에 정의를 추가합니다.

additional_hostnames:
  - basic
  - umami
hooks:
  post-start:
  - exec: mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS basic; GRANT ALL ON basic.* to 'db'@'%';"
    service: db
  - exec: mysql -uroot -proot -e "CREATE DATABASE IF NOT EXISTS umami; GRANT ALL ON umami.* to 'db'@'%';"
    service: db

위의 내용은 ddev-module recipes https://github.com/drud/ddev-contrib/blob/master/recipes/drupal8-multisite/dot.ddev/config.multisite.yaml 에서 얻은 것입니다.

언급URL : https://stackoverflow.com/questions/49785023/how-can-i-create-and-load-a-second-database-in-ddev

반응형