2014-01-04 6 views
0

В настоящее время я использую функцию DBIC Schema Loader make_schema_at, чтобы сбрасывать существующую базу данных в ее схему. Как только схема сбрасывается, мне обычно нравится входить и очищать имена аксессуаров в отношениях, чтобы читать лучше.Как обновить схему с помощью DBIC make_schema_at?

Однако время от времени мне нужно обновить мою схему снова, например, добавить в новую таблицу и отношения, что значит снова вызвать make_schema_at, а затем переименовать все мои аксессоры, которые очень трудоемки.

Есть ли лучший подход к этому, который любой может порекомендовать?

спасибо.

ответ

3

Да, для этого есть несколько решений.

Либо используйте параметры конфигурации Schema :: Loader, чтобы указать subs для генерации имени и/или сделать вашу схему DBIC хозяином.

В этом случае вы создаете новый класс результатов вместо создания таблицы в своей базе данных и используете функцию DBIC для генерации запросов DDL.

Вы можете использовать DBIx :: Class :: Migration для автоматизации изменений DDL в ваших базах данных.

+0

Спасибо abraxxa, я попытался изменить метод именования на v8, но это не соответствовало моим потребностям. Я не уверен, как начать создавать настраиваемый подзаголовок, не могли бы вы указать мне правильное направление? – user1768233

+0

См. Ссылку rel_name_map в документах. –

0

Никогда не редактируйте код над хешем MD5 в сгенерированном файле схемы DBIC. вы просто делаете проблемы для себя.

Полезно потратить время, чтобы прочитать документацию для DBIx::Class::Schema::Loader::Base. В частности, внимательно ознакомьтесь с атрибутами «moniker_map», «col_accessor_map» и «rel_name_map».

 Смежные вопросы

  • Нет связанных вопросов^_^