rails g model Rating user_id:integer message:string value:integer
How can I completely remove this model? Thanks
rails g model Rating user_id:integer message:string value:integer
How can I completely remove this model? Thanks
When you generate a model, it creates a database migration. If you run 'destroy' on that model, it will delete the migration file, but not the database table. So before run
bundle exec rails db:rollback
rails destroy model <model_name>
For rails versions before 5.0 and higher use rake
instead of rails
bundle exec rake db:rollback
rails destroy model <model_name>
bundle exec rake db:drop db:create db:migrate
. It will be a new empty database.
Jul 22, 2013 at 20:30
Try this
rails destroy model Rating
It will remove model, migration, tests and fixtures
For future questioners: If you can't drop the tables from the console, try to create a migration that drops the tables for you. You should create a migration and then in the file note tables you want dropped like this:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
To remove migration (if you already migrated the migration)
rake db:migrate:down VERSION="20130417185845" #Your migration version
To remove Model
rails d model name #name => Your model name
Here's a different implementation of Jenny Lang's answer that works for Rails 5.
First create the migration file:
bundle exec be rails g migration DropEpisodes
Then populate the migration file as follows:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Running rails db:migrate
will drop the table. If you run rails db:rollback
, Rails will throw a ActiveRecord::IrreversibleMigration
error.
If you are interested in reversible migration to drop a table
class DropProductsTable < ActiveRecord::Migration[7.0]
def change
drop_table :products do |t|
t.string :name
t.text :description
t.decimal :price, precision: 8, scale: 2
t.timestamps
# Rest of the stuff like indexes. Consider copying directly from schema.rb
end
end
end