2013-03-01 14 views
11

Próbuję ręcznie utworzyć/zaktualizować plik db/structure.sql do celów testowych. Mam "config.active_record.schema_format = :sql" ustawione w application.rb. Zastanawiam się, czy istnieje polecenie równoważne "ActiveRecord::SchemaDumper.dump", które będzie tworzyć lub aktualizować structure.sql. Próbowałem structure_dump, ale wyjście jest zerowa:Potrzebujesz pomocy w tworzeniu struct.sql dla mojej aplikacji Railsowej

> ActiveRecord::Base.connection.structure_dump 
=> nil 

Próbowałem też przechodząc plik do tej metody:

> File.open(File.join(Rails.root, 'db/structure.sql')) { |f| ActiveRecord::Base.connection.structure_dump() } 
=> nil 

Do tej pory jedynym sposobem byłem w stanie wygenerować lub zaktualizuj db/structure.sql przez uruchomienie programu rake db: migrate. Jakieś alternatywy? Czy też brakuje mi czegoś podczas próby uruchomienia ActiveRecord :: Base.connection.structure_dump?

Odpowiedz

23

Wypróbuj rake db:structure:dump, który odtworzy db/structure.sql z bazy danych.

+1

'rake db: schema: dump' tylko regeneruje schema.rb. Próbuję uzyskać structure.sql. – MothOnMars

+0

moje złe. zapomniałem, że używasz formatu sql. zobacz zaktualizowaną odpowiedź – jvnill

+0

Dzięki za aktualizację. Właściwie to zastanawiam się, czy istnieje sposób na zrobienie tego bez rake'u, tylko dlatego, że będę go wywoływał z testu, a wywoływanie zadania rake'a wydaje się, że nie powinno być to konieczne (chociaż jestem całkiem nowy Szyny, więc mogę zakładać zbyt wiele). Myślałem, że jeśli ActiveRecord :: SchemaDumper.dump jest odpowiednikiem polecenia rake db: schema: dump, może istnieje podobny jednoliniowy odpowiednik rake db: structure: dump ...? – MothOnMars

Powiązane problemy