Могу ли я определить DBIx::Class::ResultSource::View после подключения?

У меня есть виртуальная таблица в DBIx::Class, определение которой должно отличаться в зависимости от развертывания. Если я развертываю против sqlite3, я могу использовать group_concat, но когда я развертываю в Postgres, мне нужно использовать string_agg в определении, которое я затем использую в

__PACKAGE__->result_source_instance->view_definition($sql);

Есть ли способ сделать это в зависимости от соединения?


person simone    schedule 03.08.2016    source источник
comment
Можете ли вы добавить пример ::View с двумя разными значениями, которые вам нужно использовать? Я думаю, что у меня есть идея, как это сделать, но я недостаточно уверен в своем DBIC, чтобы настроить его самостоятельно.   -  person simbabque    schedule 04.08.2016
comment
gist.github.com/simonecesano/568ed87082914c1c25fa881cdcca8bfc и gist.github.com/simonecesano/50da29e94de4301bba789ed1bbdfa7ec Надеюсь, это поможет. SQL может не работать на практике, возможно, я слишком сильно его исказил   -  person simone    schedule 04.08.2016


Ответы (1)


Вы можете исключить представление из развертывания, добавить ddl sql в свой класс схемы в зависимости от базы данных, к которой вы подключены, и не определять ее как виртуальное представление, и в этом случае sql в результирующем классе ни для чего не используется.

person Alexander Hartmaier    schedule 11.08.2016