12

Buduję aplikację Rails w oparciu o architekturę sześciokątną.Jak korzystać z ActiveRecord poza Railsami?

Jednym z moich adapterów jest adapter do przechowywania danych (utrzymywany jako klejnot), który zarządza dostępem do bazy danych i zapewnia prosty interfejs dla aplikacji szyny do przechowywania i kwerend danych w bazie danych.

Chciałbym użyć ActiveRecord w tym klejnocie ze wszystkimi zadaniami rake (tworzenie, migracja, upuszczanie, wycofywanie) do zarządzania bazą danych.

Jak korzystać z AR poza torami, ale z wszystkimi zadaniami prowizji?

+1

Możliwy duplikat [Jak korzystać z ActiveRecord w skrypcie ruby ​​poza Railsami?] (Http://stackoverflow.com/questions/1643875/how-to-use-activerecord-in-a-ruby-script-outside- szyny) – Mogsdad

+0

Jeśli chcesz coś, co działa. Oto przykład. Uruchom pakiet instaluj i zmodyfikuj swoją bazę danych. Jesteś skończony. README, aby uzyskać więcej informacji. https://github.com/slindsey3000/ContactManager – slindsey3000

Odpowiedz

18

Zainstaluj go jak każdy inny klejnot

gem install activerecord 

Następnie należy skonfigurować go gdzieś jak ten

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

modele można następnie dziedziczą normalnie z ActiveRecord :: Base

uzyskać wszystkie zadania rake, ale musisz zrobić dodatkową konfigurację, ponieważ nie będziesz miał Railsów. Oto link w środku activerecord, jak skonfigurować te rzeczy.

Database tasks

+0

Dzięki! To właśnie mam do tej pory. Moim problemem jest posiadanie wszystkich zadań "rake" do zarządzania bazą danych również w moim klejnocie. – squixy

+0

Oto istotne zagadnienie github omawiające Twój przypadek użycia, z przykładowym kodem. https://github.com/rails/rails/issues/11609 –

2

Uaktualniona rozwiązaniem jest standalone_migrations. Zasadniczo po wykonaniu konfiguracji gem i utworzeniu konfiguracji, masz dostęp do wszystkich niuansów ActiveRecord. Rake zadań zawartych!

Zrobiłem też mały generator do rusztowania prostych skryptów, które mają dostęp do ActiveRecord po wyjęciu z pudełka: nrb - Ninja Ruby.