Как настроить multidatabase в symfony doctrine

#php #symfony1 #doctrine

#php #symfony1 #доктрина

Вопрос:

я использую symfony для своего проекта, где у меня есть две базы данных, но я знаю только, как настроить symfony для одной базы данных, как показано ниже code database.yml

 all:doctrine:
class: sfDoctrineDatabase
param:
  dsn:      mysql:host=localhost;dbname=gapi
  username: root
  password: 
  

итак, пожалуйста, помогите мне настроить две или более базы данных для symfony doctrine.

Ответ №1:

Структура databases.yml выглядит следующим образом:

 all: # <-- Environment
  doctrine: # <-- Name of connection
    class: sfDoctrineDatabase # <-- Connection class
    param: # <-- Parameters for the class
      dsn:      mysql:host=localhost;dbname=gapi
      username: root
      password: 
  

Итак, если вы хотите добавить дополнительное подключение к базе данных ( databases.yml specifies the connections, not the databases itself). You can copy the block from doctrine` on и присвоить ему новое имя. Что-то вроде этого:

 all: # <-- Environment
  doctrine: # <-- Name of connection
    class: sfDoctrineDatabase # <-- Connection class
    param: # <-- Parameters for the class
      dsn:      mysql:host=localhost;dbname=gapi
      username: root
      password: 

  # Extra connection:
  connection2: # <-- Name of connection
    class: sfDoctrineDatabase # <-- Connection class
    param: # <-- Parameters for the class
      dsn:      mysql:host=localhost;dbname=database2
      username: root
      password: 
  

Но имейте в виду: работа с несколькими подключениями требует большого понимания Symfony и Doctrine, и вы должны очень хорошо подумать и протестировать, чтобы быть уверенным, что вы выполняете запросы по правильному соединению.

Комментарии:

1. спасибо за ответ, но теперь, как создать schema.yml для конкретной базы данных. пожалуйста, помогите

2. Вы можете указать соединение в разделе параметров таблицы вашего yml.