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>
Когда вы генерируете модель, создается миграция базы данных. Если вы выполните команду «destroy» для этой модели, она удалит файл миграции, но не таблицу базы данных. Итак, перед запуском
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
ошибку.