Ich benutze sqlite3 in der Speicherdatenbank zum Testen. Es ist normalerweise ein wenig schneller als Datei basiert, aber nicht so viel, es sei denn, Sie haben eine Tonne von Testdaten.
einzustellen, dass Ihre database.yml up wird wie folgt aussehen:
config = YAML::load(IO.read(File.dirname(__FILE__) + "/../config/database.yml"))
ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/../log/debug.log")
ActiveRecord::Base.establish_connection(config["test"])
load(File.dirname(__FILE__) + "/../db/schema.rb")
:
test:
adapter: sqlite3
database: ":memory:"
Sie werden auch Ihr Schema in der In-Memory-Datenbank in Ihrem Test Helfer wie so laden müssen
Ich hätte ursprünglich sagen sollen, aber das ist NICHT für die Produktion, nur ich entwickle. Putting die Engine in die Migration ist dann keine Option (sofern ich es nicht bedingt auf der Grundlage der Umgebung tun) –
So tun es bedingt auf der Grundlage der Umgebung. Warum ist das keine Option? ': options => (RAILS_ENV! = 'production'?" ENGINE = MEMORY ": nil)' (Stellen Sie nur sicher, dass Ihre Tests nicht durch etwas Seltsames, das nur in der Speicher-Engine existiert, verworfen werden.Persönlich würde ich mich immer noch nicht damit befassen; aber wenn du wirklich denkst, dass Datenbankgeschwindigkeit dein Test-Engpass ist, klopfe dich selbst aus.) – SFEley
Weil ich die Migrationen zum scm nicht mit dem ganzen Mist in dort festlegen will. Ich wollte es einfach lokal machen, in meiner eigenen kleinen Welt, und wenn es die Dinge ein bisschen schneller für mich machen würde, wenn ich db rebuilds oder so machen müsste, dann gewinne, aber wenn nicht, wen interessiert das? regelmäßige Einrichtung Aus den Antworten und einigen anderen Lektüre, es ist mehr Arbeit als es (möglicherweise nicht einmal) wert ist. –