Gibt es einen einfachen Weg, um die Daten aus der Datenbank developmenet in den Test zu kopieren? Ich weiß theres eine Weise, Schemas zu kopieren und Datenbank neu herzustellen, aber gibt es irgendeine Rakeaufgabe, um Testdatenbank mit Entwicklung ein zu füllen?Rails - Bestücken Sie die Testdatenbank mit den Entwicklungsdaten
Antwort
Sie können mysql direkt verwenden:
mysqldump app_development | mysql app_test
können Sie verwenden:
rake db:test:clone
die Entwicklung db in Test zu kopieren.
Funktioniert überhaupt nicht für mich. Struktur wird erstellt, aber keine Datensätze werden kopiert. Ist es die Aufgabe, die Daten überhaupt zu kopieren? Die Beschreibung zeigt das nicht direkt. – mdrozdziel
Es hat nicht für mich funktioniert. Die Testdatenbank scheint leer ... –
db: test: clone ist eine Kombination aus db: schema: dump und db: test: prepare und kopiert die * data * nicht wirklich – JohnMetta
Wenn Sie nur die Entwicklung der DB in seiner Gesamtheit klonen wollen, was nur mit dem Kopieren der development.sqlite3 falsch ist und es test.sqlite3 umbenennen? Sie können den Prozess automatisieren, indem Sie eine Stapeldatei (oder eine entsprechende Datei auf Ihrem Betriebssystem) einrichten, die Sie über die Befehlszeile ausführen können.
Dies wird lokal funktionieren, aber ich habe gerade festgestellt, dass Sie vielleicht eine nicht-lokale Umgebung denken, in diesem Fall wird es wahrscheinlich nicht.
Eine alternative Methode, wenn Sie verwenden Samen (db/seeds.rb)
Fügen Sie zunächst einen Rechen Aufgabe zum Beispiel mit diesem Code/Aufgaben/test_seed.rake Lib:
namespace :db do
namespace :test do
task :prepare => :environment do
Rake::Task["db:seed"].invoke
end
end
end
Dann wenn Sie Ihre Datenbank-Struktur/Inhalt durch Migration und Samen geändert haben, können Sie laufen
rake:db:test:prepare
das Schema und seed-Daten zu kopieren.
So würde die kompletten Schritte sein:
rake db:migrate
rake db:seed
rake db:test:prepare
Wenn Sie 'rake db: test: prepare' nach' rake db: seed ausführen 'es wird Ihre Seed-Daten löschen =] – professormeowingtons
Mit Postgres, kopieren Sie die Datenbank wie folgt:
CREATE DATABASE newdb mit Vorlage originaldb Eigentümer dbuser;
- 1. Wie wird die Produktionsdatenbank (heroku) mit Entwicklungsdaten gefüllt? (Rails)
- 2. Rails: Bestücken Bootstrap-Drop-Down mit Ajax
- 3. Fehler mit Rails Testdatenbank mit Postgres mit hstore
- 4. Führen Sie Rails-Tests ohne Dropping-Testdatenbank aus
- 5. RSpec verlässt den Datensatz in der Testdatenbank
- 6. Löschen der Testdatenbank zwischen Unit- und Funktionstests in Rails (factory_girl)
- 7. Bestücken mit Arraycollection HTTPService-
- 8. Bestücken Tabelle mit jQuery
- 9. Bestücken Sammlung mit Arrays
- 10. Testdatenbank existiert TDD
- 11. Google App Engine versucht, auf die Entwicklungsdaten zuzugreifen
- 12. Wie kann ich die Rails-Konsole starten und ausschließlich die Testdatenbank verwenden?
- 13. Bestücken mit Scrolltextviews, Android Eclipse-
- 14. Bestücken Html.DropDownList
- 15. Bestücken Sie Recycling-Adapter aus Controller-Klasse
- 16. Wie kann ich die Rails-Testdatenbank vor jedem Test neu erstellen lassen?
- 17. Bestücken Sie ein Dropdownlist mit Entity Framework 4
- 18. Best Practices zum Bestücken von Schienen mit verarbeiteten Daten
- 19. Bestücken Liste <Object> LINQ mit
- 20. Rasierer Bestücken Objekt mit IEnumerable kehrt Fehler
- 21. Bestücken Eingabefelder auf Formular
- 22. eine Tableview mit einem HashMap Bestücken, die aktualisieren, wenn HashMap
- 23. Gibt es eine Möglichkeit, eine Testdatenbank in Katalysator zu verwenden?
- 24. teilweise Bestücken Child Sammlung mit NHibernate
- 25. Bestücken zugehörigen Modelle mit verschachtelten JSON
- 26. Mongoose Bestücken Pfad mit mehreren Teilstrecken
- 27. Bestücken von Listview mit multidimensionaler Arraylist
- 28. Gibt es eine schnelle Möglichkeit, zufällige Entwicklungsdaten für eine Rails-Anwendung zu erstellen?
- 29. eine zweite Auswahlfeld Bestücken - Bindungsproblem
- 30. Bestücken Feld aus enum Tabelle
Wenn Sie nicht mysql verwenden, hat @ j0k bisher die beste Antwort mit: rake db: test: klon && rake db: seed RAILS_ENV = 'test' – Krut