Задать вопрос

Kohana: работа с несколькими базами?

Всем привет!



Интересует вопрос возможности работы фреймворка с несколькими базами. Например, указать одну базу для чтения информации, а другую — для записи. То есть возможно ли распараллелить запросы чтения/записи.
  • Вопрос задан
  • 4196 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
Fanamura
@Fanamura
Php-программист, Laravel
Топик старый и решение уже, скорее всего, найдено, но все же приведу решение. Если вы используете Query Builder, то добавьте в вызов execute параметр с именем $database_config (именем конфига с данными для подключения к другой БД). Будет иметь такой вид:
return
            DB::select()
                ->from(blabla)
                ->execute($database_config);
    }
Ответ написан
Комментировать
Melkij
@Melkij
PostgreSQL DBA
Вы имеете в виду это?
kohanaframework.org/3.3/guide/database/config
Ответ написан
Комментировать
dovecot
@dovecot Автор вопроса
По сути да. Теперь как я понимаю нужно пройтись по всему коду и в требуемых местах поподключать не default instance, а кастомизированный.
Ответ написан
nimensy
@nimensy
индивидуальный предприниматель
Как и написал Fanamura - можно при обращении указывать к какой именно БД.
Чуть более изящным решением для частого обращения к нескольким базам было бы добавить подключения в конфиг файл "database.php" например у меня есть там 2 массива - default (стандартная структура для коханы) и old_crm - отсюда тяну данные.
'oldbase' => array(
		'type'       => 'PDO',
		'connection' => array(			
 // Параметры подключения
		),
	),
'default' => array
	(
		'type'       => 'MySQLi',
		'connection' => array(		
 // Параметры подключения
		),
	),


А при вызове потом просто указываете
DB::select()
                ->from('table')
           //
                ->execute('oldbase');
    }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы