Как использовать ActiveRecord вне Rails?

Я создаю приложение Rails на основе гексагональной архитектуры.

Один из моих адаптеров — это адаптер хранилища (поддерживаемый как гем), который управляет доступом к базе данных и предоставляет простой интерфейс для приложения rails для хранения и запроса данных в базе данных.

Я бы хотел использовать ActiveRecord в этом геме со всеми rake задачами (создание, миграция, удаление, откат) для управления базой данных.

Как я могу использовать AR вне рельсов, но со всеми задачами rake?


person Kamil Lelonek    schedule 21.12.2014    source источник
comment
Возможный дубликат Как использовать ActiveRecord в скрипте ruby ​​снаружи Рельсы?   -  person Mogsdad    schedule 09.03.2016
comment
Если вы хотите что-то, что работает. Вот пример. Запустите пакетную установку и перенесите свою БД. Готово. README для получения дополнительной информации. github.com/slindsey3000/ContactManager   -  person slindsey3000    schedule 22.03.2016
comment
Связано: Создание миграций вне Rails   -  person Franklin Yu    schedule 09.12.2018


Ответы (2)


Установите его, как и любой другой драгоценный камень

gem install activerecord

Затем вы настраиваете его где-то так

ActiveRecord::Base.establish_connection(
  :adapter  => 'mysql',
  :database => 'database',
  :username => 'user',
  :password => 'password',
  :host     => 'localhost')

Затем модели могут наследовать как обычно от ActiveRecord::Base.

Вы получаете все задачи rake, но вам нужно выполнить некоторые дополнительные настройки, поскольку у вас не будет Rails. Вот ссылка внутри activerecord для того, чтобы настроить этот материал.

Задачи базы данных

person Austio    schedule 21.12.2014
comment
Спасибо! Это то, что у меня есть до сих пор. Моя проблема заключается в том, чтобы иметь все rake задачи для управления базой данных в моем камне. - person Kamil Lelonek; 22.12.2014
comment
Вот актуальная проблема github, в которой обсуждается ваш вариант использования с примером кода. github.com/rails/rails/issues/11609 - person Toby L Welch-Richards; 22.12.2014

Обновленным решением является standalone_migrations. По сути, после настройки драгоценного камня и создания конфигурации у вас есть доступ ко всем тонкостям ActiveRecord. Рейк задания включены!

Также я сделал небольшой генератор для создания простых скриптов, имеющих доступ к ActiveRecord из коробки: nrb - Ninja Ruby.

person shuriu    schedule 08.03.2016