Ist es möglich, Daten aus einer Datenbank zu exportieren oder etwas wie Person.find (1) .to_seed auszuführen und die Ausgabe von der Konsole in die Datei samen.rb zu kopieren?Gibt es eine Möglichkeit, ein ActiveRecord-Objekt zu samen.rb zu exportieren?
Antwort
Nein, nicht wirklich. Aber Sie können Code schreiben, der das tun könnte!
Strategie wäre, Ihre Datenbankeinträge in YAML auszugeben und diese YAML in seed.rb zu lesen. Eine andere Strategie ist natürlich, Code zu schreiben, der seed.rb generiert.
Scheint wie ein sehr typisches Bedürfnis. Ich bin noch nicht auf ein Juwel oder etwas gestoßen, das das schon tut.
Versuchen Sie mit seed-fu. Sie können SeedFu::Writer eine CSV-Datei angeben, die zum Generieren einer Datei im Format "samen.rb" verwendet wird. Natürlich müssten Sie mit einem Datenbank-Tool die Datenbanktabelle in eine CSV-Datei exportieren.
Ein schöner Code-Schnipsel, die ich gefunden habe, um diese Adresse ist eine Harke Aufgabe von Jesse Newland:
http://snippets.dzone.com/posts/show/3393
namespace :db do
namespace :fixtures do
desc 'Create YAML test fixtures from data in an existing database. Defaults to development database. Set RAILS_ENV to override.'
task :dump => :environment do
sql = "SELECT * FROM %s"
skip_tables = ["schema_info"]
ActiveRecord::Base.establish_connection(:development)
(ActiveRecord::Base.connection.tables - skip_tables).each do |table_name|
i = "000"
File.open("test/fixtures/#{table_name}.yml", 'w') do |file|
data = ActiveRecord::Base.connection.select_all(sql % table_name)
file.write data.inject({}) { |hash, record|
hash["#{table_name}_#{i.succ!}"] = record
hash
}.to_yaml
end
end
end
end
end
Nachdem Sie Ihre exportierten Befestigungen in YAML bekommen können Sie nur einige regelmäßige laufen Ausdrücke, um sie für eine Seeds-Datei korrekt zu formatieren. Dies wäre wahrscheinlich ein guter Codeschnipsel, der als Grundlage für das Erstellen einer Rake-Task zum Exportieren einer Seed-Datei verwendet werden kann.
Ja.
Hier ist ein Juwel - - das genau das tut.
öffnen Rails-Konsole und verwenden diesen Trick:
puts name_of_your_.attributes.to_yaml
- 1. Gibt es eine Möglichkeit, eine Generatorfunktion zu exportieren?
- 2. Gibt es eine Möglichkeit, die Vektordaten eines DisplayObject zu exportieren?
- 3. Gibt es eine Möglichkeit, in Gephi ein Diagramm zu erstellen und es nach TitanDb zu exportieren?
- 4. Gibt es eine Möglichkeit Xcode Tastenbelegungen zu exportieren?
- 5. Gibt es eine Möglichkeit, onPanResponderMove zu verwalten?
- 6. Gibt es eine Möglichkeit, Kovarianz zu deklarieren?
- 7. Gibt es eine Möglichkeit, AMDPlugin zu deaktivieren?
- 8. Gibt es eine Möglichkeit, Creeps zu löschen?
- 9. Gibt es eine Möglichkeit, Datenbanktransaktionen zu beschleunigen?
- 10. Gibt es eine Möglichkeit, Formularantwort zu ignorieren?
- 11. Gibt es eine Möglichkeit, django.db.connection.queries zu löschen?
- 12. Gibt es eine Möglichkeit, Duplikate zu vermeiden?
- 13. Gibt es eine Möglichkeit, Typdeklarationen zu erweitern?
- 14. Gibt es eine Möglichkeit, Fenstereigenschaften zu verbergen?
- 15. Gibt es eine Möglichkeit, Mehrfacheinspritzung zu propagieren?
- 16. Gibt es eine Möglichkeit, PreparedStatement zu aktualisieren?
- 17. Gibt es eine Möglichkeit, ConfigurationManager.AppSettings zu überschreiben?
- 18. Gibt es eine Möglichkeit, Unterabfragen zu vermeiden?
- 19. Gibt es eine Möglichkeit, Webkonsolenfehler zu erkennen?
- 20. Gibt es eine Möglichkeit, dies zu loopen?
- 21. Gibt es eine Möglichkeit, "träge" zu lesen?
- 22. Gibt es eine Möglichkeit, Selektoren zu gruppieren?
- 23. Gibt es eine Möglichkeit, Jira-Probleme in GitHub zu importieren?
- 24. Gibt es eine Möglichkeit, ein eigenes HTML-Element zu erstellen?
- 25. Gibt es eine Möglichkeit, ein Etikett zu deaktivieren?
- 26. Gibt es eine Möglichkeit, ein Crystal Reports-Dataset zu recyceln?
- 27. Gibt es eine Möglichkeit, ein gesamtes SVN-Repository zu visualisieren?
- 28. Gibt es eine Möglichkeit, ein Etikett mit c3js zu ändern?
- 29. Gibt es eine Möglichkeit, ein elasticsearch_score von ASC zu sortieren?
- 30. gibt es eine Möglichkeit, ein Muster in .dockerignore zu negieren?
Das sieht vielversprechend aus. Danke fürs teilen. – Abram