2017-06-07 2 views
0

J'ai des rails de roulement g modèle Description de la tâche: texte. Ensuite, j'ai couru la console des rails et mis quelques tâches. Je voudrais maintenant ajouter plus d'attributs au fichier create_tasks.rb. Tels que .string: title.Ruby on rails mise à jour du modèle via la console rails

Ce que j'ai essayé:

  1. a ouvert le fichier (create_tasks.rb), mettre la nouvelle ligne puis a couru rake db:migrate alors retourné dans la console et a ouvert la première tâche et il ne montre pas. l'attribut title.
  2. a également essayé de créer une nouvelle tâche en utilisant l'attribut title. Error: unknown title attribute for Task.

Alors, comment mettre à jour le modèle?

+0

Remarque générale: il est généralement préférable de créer une nouvelle migration pour chaque modification de base de données plutôt que de modifier les migrations existantes. De cette façon, chaque développeur sur un projet peut simplement exécuter les nouvelles migrations sans avoir besoin de revenir en arrière, de déconner, etc. – Mirror318

Répondre

0

Pour retourner la base de données avant la dernière migration, ajoutez les nouvelles variables au fichier de migration, puis exécutez rails db:migrate pour inclure les nouvelles parties du fichier de migration.

Si vous devez annuler plus de révisions (si vous avez créé plusieurs migrations depuis la création de ce modèle), vous pouvez inclure le nombre de dossiers de rouler comme

rails db:rollback STEP=<enter number of steps> 
#e.g. rails db:rollback STEP=2 

ou, vous pouvez aussi rails db:reset qui supprimerait toutes les bases de données, les recréerait, puis les remigrerait. Ou vous pouvez rails db:drop pour supprimer la base de données, puis rails db:create et rails db:migrate pour migrer la nouvelle base de données.

Ne modifiez pas le fichier de schéma. Le fichier de schéma est automatiquement mis à jour lorsque vous exécutez migrations etc. pour correspondre au contenu de vos fichiers de migration.