Ich suche, alle meine geteilten Modelle zu einer Engine zu bewegen, die in jeder meiner Mikro-Apps enthalten sein kann.
Diese Engine sollte eine Modellschicht für alle unsere Altdaten bereitstellen, einschließlich:
Modelldateien werden automatisch gepatcht, das ist in Ordnung.
Schemadateien werden mit Hilfe von von Nikolay Strum geplappt db.rake :
%Vor% Wir brauchen rake db:create
und rake db:schema:load
um zu arbeiten,
Die db.rake
Patches betreffen nur db:schema:dump
und db:test:load_schema
(Teil von tests_prepare, nehme ich an). Ich habe versucht, sie in db:schema:load
zu packen mit:
Aber das gibt mir den Fehler NoMethodError: undefined method 'recreate_database' for #<ActiveRecord::ConnectionAdapters::SQLite3Adapter:0x007feb6bb43558>
. Scheinbar funktioniert das nur auf Oracle-Typ-Datenbanken?
Was sind die Rails-Befehle für die zugrunde liegende DROP
und CREATE DATABASE
sql Ich versuche, für die zusätzlichen schema.rb
s zu beeinflussen?
Sie verwenden SQLite als Datenbankmodul. Hoffe, dass du das willst.
Da Sie SQLite-Datenbank erstellen, unterscheiden sich die Dinge ein wenig von anderen Datenbankadaptern wie MySQLAdpter oder Postgress.
Im Falle von MySQL muss die Datenbank vor dem Aufbau einer Verbindung erstellt werden, indem "CREATE DATABASE ..." SQL-Befehle ausgegeben werden. Sie müssen daher die Datenbank vor dem Verbindungsaufbau erstellen.
Aber im Falle von SQLite, da die Datenbank in einer Datei gespeichert ist und eine Datei nur eine Datenbank enthalten kann, gibt es keinen separaten Schritt zum Erstellen der Datenbank. Wenn versucht wird, eine Verbindung zur Datenbank herzustellen, wird die Datenbankdatei erstellt.
Die create_database-Methode funktioniert daher nicht, wenn SQLiteAdapter verwendet wird. Sie können diese Zeile einfach aus Ihrem Code entfernen.
Sie können sich den Quellcode für die Rake-Task db ansehen: create
Auch der Quellcode für die 'create' Methode in SQLiteDatabaseTasks. Wie Sie sehen können, ruft es einfach die Methode "set_connection"
aufTags und Links ruby-on-rails gem rake sqlite3 rails-engines