rails g model Rating user_id:integer message:string value:integer
Jak mogę całkowicie usunąć ten model? Dzięki
rails g model Rating user_id:integer message:string value:integer
Jak mogę całkowicie usunąć ten model? Dzięki
Odpowiedzi:
bundle exec rake db:rollback
rails destroy model <model_name>
Podczas generowania modelu tworzy migrację bazy danych. Jeśli uruchomisz polecenie „niszcz” w tym modelu, usunie on plik migracji, ale nie tabelę bazy danych. Więc przed biegiem
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Będzie to nowa, pusta baza danych.
Dla przyszłych pytających: jeśli nie możesz usunąć tabel z konsoli, spróbuj utworzyć migrację, która porzuca tabele za Ciebie. Powinieneś utworzyć migrację, a następnie w tabelach notatek plików, które chcesz usunąć w następujący sposób:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Aby usunąć migrację (jeśli migracja została już przeprowadzona)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Aby usunąć Model
rails d model name #name => Your model name
rails d model
jest tym, czego szukam, aby odwrócić mój rails g model
.
Oto inna implementacja odpowiedzi Jenny Lang, która działa w Railsach 5.
Najpierw utwórz plik migracji:
bundle exec be rails g migration DropEpisodes
Następnie wypełnij plik migracji w następujący sposób:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Uruchomienie rails db:migrate
spowoduje upuszczenie stołu. Jeśli uruchomisz rails db:rollback
, Railsy zgłoszą ActiveRecord::IrreversibleMigration
błąd.