rails g model Rating user_id:integer message:string value:integer
Comment puis-je supprimer complètement ce modèle? Merci
rails g model Rating user_id:integer message:string value:integer
Comment puis-je supprimer complètement ce modèle? Merci
Réponses:
bundle exec rake db:rollback
rails destroy model <model_name>
Lorsque vous générez un modèle, il crée une migration de base de données. Si vous exécutez 'destroy' sur ce modèle, cela supprimera le fichier de migration, mais pas la table de base de données. Alors avant de courir
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. Ce sera une nouvelle base de données vide.
Pour les futurs interrogateurs: si vous ne pouvez pas supprimer les tables de la console, essayez de créer une migration qui supprime les tables pour vous. Vous devez créer une migration, puis dans les tables de notes de fichier que vous souhaitez supprimer comme ceci:
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Pour supprimer la migration (si vous avez déjà migré la migration)
rake db:migrate:down VERSION="20130417185845" #Your migration version
Pour supprimer un modèle
rails d model name #name => Your model name
rails d model
est ce que je cherche pour inverser mon rails g model
.
Voici une implémentation différente de la réponse de Jenny Lang qui fonctionne pour Rails 5.
Créez d'abord le fichier de migration:
bundle exec be rails g migration DropEpisodes
Remplissez ensuite le fichier de migration comme suit:
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Courir rails db:migrate
fera tomber la table. Si vous exécutez rails db:rollback
, Rails lancera une ActiveRecord::IrreversibleMigration
erreur.