2014-04-24 2 views
5

Je suis nouveau sur RoR et je suis le tutoriel de Michael Hartl (alors n'hésitez pas à corriger la terminologie que j'utilise là où vous le voyez). Dans le chapitre 2, j'ai créé une table d'utilisateurs en exécutant ces lignes:Aurais-je besoin d'annuler un "rails générer un échafaudage" après avoir défait un "db: migrate"?

$ rails generate scaffold User name:string email:string 
$ bundle exec rake db:migrate 

Ensuite, j'ai couru le code ci-dessous pour essayer de créer une table Microposts (Cependant, je mal orthographié Micropost sans « r »!) ..

$ rails generate scaffold Miropost content:string user_id:integer 
$ bundle exec rake db:migrate 

Maintenant, je veux supprimer la table Miropost que j'ai créée. Après avoir cherché dans stackoverflow.com, je comprends que je peux annuler la migration de la base de données (ie, db: migrate) en exécutant rake db:migrate:reset. Ma question est de savoir si je devrais défaire les "rails génèrent l'échafaudage" aussi? Et quand les échafaudages cessent-ils d'exister?

Répondre

11

Vous devez d'abord annuler les modifications de db. En supposant que la migration générée pour Miropost est la dernière migration dans votre db.

Il suffit de lancer

rake db:rollback ## This will drop the table miroposts 

Après cela détruit l'échafaud existant par:

rails destroy scaffold Miropost content:string user_id:integer 

tout ce que vous devez ensuite faire est de recréer l'échafaudage ayant une orthographe correcte et exécutez rake db:migrate

+1

Merci! Cela a fonctionné comme un charme. Juste pour le bénéfice de ma scolarité, les échafaudages ne sont-ils jamais supprimés jusqu'à ce que vous les détruisiez explicitement? Et quand on fait 'rake db: migrate', cela fait-il toujours référence à l'échafaudage le plus récent créé? – ayjay

+2

'échafaudage' ne serait effacé que lorsque vous le supprimerz explicitement avec la commande' rails destroy échafaudage ... '. 'rake db: migrate' va migrer toutes les migrations en attente dans le dossier' db/migrate'. –

Questions connexes