Z powodu problemów z wdrożeniem przestałem śledzić schema.rb w git. Jakoś to upchnąłem i gdzieś po drodze zniknął mój plik schema.rb.
Czy istnieje sposób na ponowne wygenerowanie pliku schema.rb z bazy danych lub z migracji? Wolałbym nie stracić istniejących danych.
rake db:schema:dump
na railsach 2.0Ostrożny,
zrzuci bieżący schemat DB Z DB . Oznacza to, że jeśli wprowadziłeś jakiekolwiek zmiany w swoich migracjach, NIE zostaną one odzwierciedlone w pliku schema.rb, który nie jest tym, czego chcesz IMO.
Jeśli chcesz ponownie utworzyć schemat na podstawie migracji, wykonaj następujące czynności:
źródło
rake db:schema:dump
polecenie.Myślę, że jest to nadal ważne w Railsach 3 - regeneruje schema.rb z bazy danych.
źródło
KOLEJKI 5-drożne:
lub jeśli spotkasz Gem :: LoadError to:
Uwaga:
w rails 5 zaleca się, aby zadania były generowane / wykonywane przy użyciu
rails
zamiastrake
, należy to pamiętać, zadania generowane przez railsy mają rozszerzenie.rake
patrz wlib/tasks/myTask.rake
. co oznacza, że zadanie to można również wykonać przez poprzedzanierake
.źródło
Jeśli regenerujesz się
schema.rb
lokalnie, powinno być dobrze. Po prostu zawiera reprezentację struktury tabel bazy danych. Same dane nie są zawarte w tym pliku.Aby zregenerować
schema.rb
plik, uruchom:Następnie po prostu zatwierdź nowy
schema.rb
plik i powinieneś być w dobrej formie!źródło
Bezpośrednio z samego pliku schema.rb:
Więc NIE rób sugestii
rake db:migrate
, która została zasugerowana w - w czasie tego pisania - najniżej ocenianej odpowiedzi.źródło
Miałem również podobny problem, w którym mój stary schemat nie odświeżał się, nawet jeśli usunąłem migrację.
Więc porzuciłem wszystkie istniejące tabele w bazie danych i ponownie je zmigrowałem. Uruchomienie polecenia „db: schema: load” dało mi nowy plik schema.rb.
źródło