У меня есть БД MySQL с несколькими таблицами и представлениями по этим таблицам. Вид ограничивает то, что можно увидеть в данных одного клиента (create view ... where customer_id = X
). Приложение Catalyst будет разговаривать с этими видами, а не с фактическими таблицами. Единственная разница между столбцами представления и базовыми таблицами заключается в том, что в представлении отсутствует столбец customer_id
(то есть в приложении, похоже, что текущий клиент является единственным в системе).Загрузчик схемы DBIC: как пропустить столбцы
Проблема заключается в том, что я не могу использовать DBIC Schema Loader для загрузки схемы из представлений, так как им не хватает всех отношений и ключей. Мне нужно загрузить схему из базовых таблиц, а затем использовать ее в представлениях. Проблемы в том, что я не могу избавиться от этой колонки customer_id
. Мне нужно избавиться от него, потому что его нет в представлении, с которым будет разговаривать приложение.
Я закончил с использованием опции filter_generated_code
раздеться ненужные биты от сгенерированного кода, но я получаю следующее сообщение об ошибке во время генерации:
DBIx::Class::Schema::Loader::make_schema_at(): No such column customer_id
at /opt/merp/perl/lib/perl5/Catalyst/Helper/Model/DBIC/Schema.pm line 635
Как я могу иметь загрузчик пропустить некоторые столбцы при загрузке время?
Спасибо, Я уже найдено обходное решение ... –