rails g model Rating user_id:integer message:string value:integer
Як я можу повністю зняти цю модель? Дякую
rails g model Rating user_id:integer message:string value:integer
Як я можу повністю зняти цю модель? Дякую
Відповіді:
bundle exec rake db:rollback
rails destroy model <model_name>
Коли ви генеруєте модель, вона створює міграцію бази даних. Якщо ви запустите "знищити" на цій моделі, він видалить файл міграції, але не таблицю бази даних. Тож перед бігом
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Це буде нова порожня база даних.
Для майбутніх розпитувачів: Якщо ви не можете скинути таблиці з консолі, спробуйте створити міграцію, яка скидає таблиці для вас. Ви повинні створити міграцію, а потім у таблицях файлів приміток, які ви хочете випасти так:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Щоб видалити міграцію (якщо ви вже перенесли міграцію)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Щоб видалити Модель
rails d model name #name => Your model name
rails d model
це те, що я шукаю, щоб скасувати своє rails g model
.
Ось інша реалізація відповіді Дженні Ленг, яка працює для Rails 5.
Спочатку створіть файл міграції:
bundle exec be rails g migration DropEpisodes
Потім заповніть файл міграції таким чином:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Біг rails db:migrate
опустить стіл. Якщо ви запустите rails db:rollback
, Rails видасть ActiveRecord::IrreversibleMigration
помилку.