12

Ich baue eine Rails-Anwendung basierend auf hexagonaler Architektur.Wie verwende ich ActiveRecord außerhalb von Rails?

Einer meiner Adapter ist Speicheradapter (verwaltet als ein Juwel), die den Zugriff auf die Datenbank verwaltet und bietet eine einfache Schnittstelle für Rails-Anwendung zum Speichern und Abfragen von Daten in der Datenbank.

Ich möchte mit allen rake Aufgaben ActiveRecord in diesem Juwel verwenden (Erstellen, migrieren, drop, Rollback) für Datenbank zu verwalten.

Wie kann ich AR außerhalb der Schienen verwenden, aber mit allen Rake-Aufgaben?

+1

Mögliche Duplikate von [Wie verwendet man ActiveRecord in einem Ruby-Skript außerhalb von Rails?] (Http://stackoverflow.com/questions/1643875/how-to-use-activerecord-in-a-ruby-script-outside- Schienen) – Mogsdad

+0

Wenn Sie etwas wollen, das funktioniert. Hier ist ein Beispiel. Bundle installieren und migrieren Sie Ihre Datenbank. Du bist fertig. README für weitere Informationen. https://github.com/slindsey3000/ContactManager – slindsey3000

Antwort

18

Installieren Sie es wie jedes andere Juwel

gem install activerecord 

Dann Sie es irgendwo wie dieses

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

Modelle können dann erben als normal von Activerecord :: Base

Sie alle bekommen konfigurieren von die Rake-Aufgaben, aber Sie müssen einige zusätzliche Konfiguration vornehmen, da Sie die Rails nicht haben. Hier ist der Link innerhalb von ActiveRecord für die Konfiguration dieses Zeug.

Database tasks

+0

Danke! Das habe ich bisher. Mein Problem ist es, alle "Rake" -Tasks zur Verwaltung der Datenbank in meinem Juwel zu haben. – squixy

+0

Hier ist ein relevanter GitHub-Artikel, der Ihren Anwendungsfall mit Beispielcode diskutiert. https://github.com/rails/rails/issues/11609 –

2

Eine aktualisierte Lösung ist die standalone_migrations. Nachdem Sie die Konfiguration für den Edelstein vorgenommen und die Konfiguration erstellt haben, haben Sie Zugriff auf alle ActiveRecord-Feinheiten. Rake Aufgaben enthalten!

Auch ich habe einen kleinen Generator für einfache Scripts, die Zugriff auf ActiveRecord out of the box haben: nrb - Ninja Ruby.

Verwandte Themen