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
Répondre
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.
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
Il existe une table 'schema_migrations' qui peut déjà contenir la version. J'ai mis à jour la réponse en conséquence. – 0x4a6f4672
Merci. Cela semble résoudre le problème. – fineboy1
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