rails g model Notation user_id:integer message:string value:integer
Comment puis-je supprimer complètement ce modèle ? Merci
rails g model Notation user_id:integer message:string value:integer
Comment puis-je supprimer complètement ce modèle ? Merci
Lorsque vous générez un modèle, cela 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. Donc avant d'exécuter
bundle exec rails db:rollback
rails destroy model
Pour les versions de rails antérieures à 5.0 et supérieures, utilisez rake
au lieu de rails
bundle exec rake db:rollback
rails destroy model
:( Lis la première ligne et fais-le. C'était de ma faute, mais une réponse correctement ordonnée aurait pu aider.
Si c'est en développement et que vous n'avez pas peur de perdre vos données, vous pouvez exécuter bundle exec rake db:drop db:create db:migrate
. Ce sera une nouvelle base de données vide.
Oui merci. J'ai restauré la migration depuis la Corbeille, mais il s'avère que j'avais aussi une autre migration manquante, donc je vais faire ce que vous suggérez.
Pour les futurs questionneurs : Si vous ne pouvez pas supprimer les tables depuis la console, essayez de créer une migration qui les supprime pour vous. Vous devriez créer une migration et ensuite dans le fichier noter les tables que vous voulez supprimer comme ceci :
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
Voici une implémentation différente de la réponse de Jenny Lang qui fonctionne pour Rails 5.
Commencez par créer le fichier de migration :
bundle exec be rails g migration DropEpisodes
Ensuite, remplissez le fichier de migration comme suit :
class DropEpisodes < ActiveRecord::Migration[5.1]
def change
drop_table :episodes
end
end
Exécuter rails db:migrate
supprimera la table. Si vous exécutez rails db:rollback
, Rails affichera une erreur ActiveRecord::IrreversibleMigration
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
6 votes
La réponse phare de Mikhail ci-dessous s'applique à un modèle créé lors de la dernière migration. Ceux qui veulent supprimer un modèle et sa table qui existent depuis un certain temps, ce fil de discussion décrit exactement quoi faire.