2017-10-17 2 views
0

J'ai d'abord effectué une migration lorsque j'ai créé la base de données et tout a bien fonctionné. Ensuite, je suis allé et supprimé la table dans postgresql manuellement. Maintenant, quand je lance rake db: migrate, il s'exécute mais ne crée pas la table.La migration Ruby on rails ne fonctionnait pas

+0

Oui cela ne fonctionnera pas comme les migrations déjà exécutées. Rails exécutera uniquement ceux qui ne sont pas déjà exécutés. Le seul moyen est d'annuler et de réexécuter les migrations. – krishnar

Répondre

1

Cela dépend de ce que font vos migrations. rake db:migrate peut créer ou modifier des tables, en fonction de vos définitions. Pour configurer la base de données et les tables au début, vous pouvez utiliser rake db:schema:load ou rake db:setup. rake -T donne un aperçu de toutes les tâches de rake disponibles.

Les migrations de base de données sont stockées dans la table schema_migrations qui a une colonne version. Tant que la version de la migration en question peut être trouvée ici, la migration n'est pas exécutée à nouveau.

+0

C'est exactement la même migration que précédemment. Cela crée une table. Puis j'ai supprimé la table dans la base de données et je veux la créer à nouveau. – fineboy1

+0

Il existe une table 'schema_migrations' qui peut déjà contenir la version. J'ai mis à jour la réponse en conséquence. – 0x4a6f4672

+0

Merci. Cela semble résoudre le problème. – fineboy1