Czy można wyeksportować dane z bazy danych lub uruchomić coś w stylu Person.find (1) .to_seed i skopiować dane wyjściowe z konsoli do pliku seeds.rb?Czy istnieje sposób na wyeksportowanie obiektu ActiveRecord do pliku seeds.rb?
Odpowiedz
Nie, naprawdę nie. Ale możesz napisać kod, który mógłby to zrobić!
Strategia polegałaby na zrzucaniu wpisów do bazy danych w YAML i przeczytaniu YAML w pliku seed.rb. Inną strategią jest oczywiście napisanie kodu, który generuje seed.rb.
Wydaje się, że to bardzo typowa potrzeba. Nie natknąłem się na klejnot lub coś, co już to robi.
Spróbuj użyć seed-fu. Możesz podać SeedFu::Writer plik CSV, który zostanie użyty do wygenerowania pliku w seeds.rb "format". Oczywiście przy użyciu jakiegoś narzędzia bazy danych trzeba wyeksportować tabelę bazy danych do pliku CSV.
Miła fragment kodu, który znalazłem w celu rozwiązania tego problemu jest zadaniem natarcia z 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
Po otrzymaniu wyeksportowane opraw w YAML można po prostu uruchomić jakiś regularny wyrażenia, aby poprawnie je sformatować dla pliku źródłowego. Prawdopodobnie byłby to dobry fragment kodu, który posłużyłby jako podstawa do zbudowania zadania rake do eksportu pliku źródłowego.
Tak.
Oto klejnot - https://github.com/rroblak/seed_dump - to właśnie robi.
konsola bariery i wykorzystać ten trik:
puts name_of_your_.attributes.to_yaml
- 1. Czy istnieje sposób na wyeksportowanie powiązań klawiszy Xcode?
- 2. Czy istnieje sposób na dodanie MouseListener do obiektu Graphic?
- 3. Czy istnieje sposób przekonwertowania obiektu Ember do zwykłego obiektu javascript?
- 4. Czy istnieje sposób na odczyt obiektu pliku za pomocą Fog i CarrierWave?
- 5. Czy istnieje sposób na wiele plików seeds.rb? Wszelkiego rodzaju "wersjonowanie" danych o nasionach?
- 6. Podziel seeds.rb na wiele sekcji?
- 7. Czy istnieje sposób na pobranie nazwy pliku z pliku `FILE *`?
- 8. Czy istnieje czysty sposób testowania wywołań zwrotnych ActiveRecord w Rspec?
- 9. Czy istnieje prosty sposób na uzyskanie rozmiaru obiektu java?
- 10. Czy istnieje sposób na wymuszenie formatu pliku README.txt na github?
- 11. Czy istnieje sposób na zainicjowanie obiektu za pomocą skrótu?
- 12. Czy istnieje sposób na uzyskanie domyślnego obiektu $ .ajax?
- 13. Czy istnieje sposób listy wszystkich powiązań do obiektu Ember.Object?
- 14. Wyeksportowanie (zrzut) danych WebSQL
- 15. Czy istnieje sposób na skonfigurowanie zdalnego pliku .gitignores?
- 16. Czy istnieje sposób na zachowanie stałej pliku prywatnego w Kotlin
- 17. Czy istnieje sposób na wyrażenie wyrażenia-cudzysłem w pliku Node.js?
- 18. Czy istnieje sposób na poznanie metody wywoływania?
- 19. Czy istnieje sposób dodania wyjątku do require_tree w pliku manifestu?
- 20. Czy istnieje sposób utworzenia wspólnego obiektu strumienia wyjściowego do wydrukowania na konsoli i do pliku w języku C++?
- 21. Czy istnieje sposób automatycznego wyprowadzenia pliku requirements.txt?
- 22. Czy istnieje lepszy sposób zapisu pełnej zawartości pliku do OutputStream?
- 23. Czy istnieje sposób kompresowania obiektu lm() w celu późniejszego przewidywania?
- 24. Czy istnieje sposób na rozszerzenie pliku w nazwie pakietu?
- 25. Czy istnieje sposób na wydobycie zawartości pliku pdf z bash?
- 26. Zmiana klasy obiektu w ActiveRecord
- 27. Czy istnieje sposób przekonwertowania pliku XML Cobertury do raportu HTML?
- 28. Czy istnieje sposób na przyspieszenie kompilacji WiX?
- 29. Jak przesłać seeds.rb do istniejącej aplikacji rails (na Heroku)?
- 30. Czy istnieje sposób na importowanie/eksportowanie skarbca SourceGear do Git
To wygląda obiecująco. Dziękuję za udostępnienie. – Abram