Подключиться к базе данных DBIx::Class без повторения деталей подключения?
DBIx::Class::Manual::Intro
предлагает подключиться к базе данных следующим образом
my $schema = MyApp::Schema->connect(...)
явное указание сведений о соединении, таких как пароль.
Я хочу подключиться к одной и той же базе данных из нескольких разных сценариев, и было бы неразумно кодировать одни и те же параметры подключения в каждую из программ в отдельности.
Каков "официальный" способ создания метода подключения с фиксированными деталями подключения?
Я понимаю, что могу написать что-то вроде этого
package MyApp::Schema;
use base qw/DBIx::Class::Schema/;
sub my_connect {
$_[0]::SUPER->connect(...);
}
1;
Этот подход рекомендуется?
Я понимаю, что предоставление различных сведений о соединении может быть полезно для тестирования сценариев, но на самом деле мы еще не используем сценарии тестирования, поэтому в настоящее время это не имеет значения для нашей команды.
1 ответ
Поместите информацию о вашем соединении в файл конфигурации, создайте утилиту для возврата соединения и прочитайте информацию о конфигурации, как вы показали, или как функцию заводского типа. Сделайте конфигурацию зависимой от среды, и у вас будут возможности тестирования бесплатно.