Подключиться к базе данных 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 ответ

Поместите информацию о вашем соединении в файл конфигурации, создайте утилиту для возврата соединения и прочитайте информацию о конфигурации, как вы показали, или как функцию заводского типа. Сделайте конфигурацию зависимой от среды, и у вас будут возможности тестирования бесплатно.

Другие вопросы по тегам