Как организовать легкое переключение с одного типа базы данных на другой в YII2?

В YII2 есть возможность перенастройки проекта для использования различных баз данных, хотелось бы использовать, но на практике понимаю что не всё так просто....

Например запросы в MongoDB совсем не такие как в Mysql и классы для работы с разными базами имеют разный набор функций.

Прошу поделится опытом.


Ответы (1 шт):

Автор решения: Ипатьев

Никак.

Никакой "легкой перенастройки" для использования различных баз данных в природе не существует. Это миф. Сказка.

В теории, если использовать для работы с БД только методы ORM (в Yii2 это Active Record), то перенастройка будет элементарной - достаточно будет поменять тип БД в настройках. А дальше ORM будет сам строить запросы в зависимости от типа СУБД.

Но в реальности одними только методами ORM обойтись невозможно, и в приложении всегда будет SQL (в чистом виде или через QueryBuilder) - и все такие запросы придётся переписывать под новый движок.

А если говорить конкретно про MongoDB, то с ней и того проще - в качестве СУБД для проекта она попросту не подходит, и, соответственно, вопрос становится неактуальным (если вам всё ещё кажется что подходит, надо прочитать вот эту статью).

→ Ссылка