Переход от класса::DBI к DBIx::Class

В настоящее время я провожу некоторые исследования DBIx::Class, чтобы перенести мое текущее приложение из Class:: DBI. Честно говоря, я немного разочарован по поводу DBIx::Class, когда дело доходит до настройки результирующих классов, с Class:: DBI я мог настраивать метаданные на моделях, просто вызывая функцию on без генератора кода и так по моему вопросу... Могу ли я сделать то же самое с DBIX::Class, и кажется, что триггеры на стороне клиента не поддерживаются в DBIx::Class, или я не смотрю на неправильные документы?

1 ответ

Триггеры могут быть реализованы путем переопределения соответствующего метода (new/create/update/delete и т. Д.) В классе Result и вызова родителя (через $self->next::method()) внутри него, до или после вашего кода. По общему признанию это немного неуклюже по сравнению с триггерами до / после в Class::DBI.

Что касается метаданных - вы говорите о временных столбцах на объекте? т.е. данные, которые не будут храниться в строке базы данных. Их можно легко добавить с помощью одного из модулей Class::Accessor::* в CPAN.

При переключении с CDBI на DBIC одно из самых трудных изменений - думать с точки зрения ResultSets - часто то, что было бы реализовано с помощью метода Class в CDBI, становится методом на ResultSet - и, возможно, потребуется значительно реорганизовать код, это не всегда прямое преобразование из одного в другое.

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