J'ai cloné mon projet. Livré avec "bundle install", puis exécutez "rake db: migrate". Le message d'erreur suivant s'affiche: (lorsque j'exécute le serveur Rails et que j'ouvre mon navigateur sur localhost: 3000) "Les migrations sont en attente; exécutez" db/rake db: migrate Rails_ENV = development "pour résoudre ce problème."
J'ai vérifié toutes les migrations une à une et toutes ont été exécutées sans erreur. De plus, aucune erreur n'a été signalée après l'exécution de "rake db: migrate".
C’est ce que je vois quand j’exécute " rake db: migrate: status "
Je suis sur l'environnement de développement. S'il vous plaît laissez-moi savoir si vous avez besoin d'autres informations.
J'ai également essayé "bundle exec rake db: migrate", et "bundle exec rake db: migrate: reset" comme "burninggramma" suggéré.
Des indices sur l'origine de l'erreur?
Intéressant. Avez-vous exécuté rake db: create? En supposant que vous utilisez sqlite3, procédez comme suit:
rm -f db/*.sqlite3
rake db:create
Rails_ENV=development rake db:migrate
Rails s -e development
Aussi, pouvez-vous lister le contenu de votre fichier config/database.yml file?
Edit: Attention! Évidemment, vous perdrez vos données existantes.
Après avoir exécuté la commande migrate, j'avais toujours la même erreur.
Ce qui a bien fonctionné pour moi, c’est d’arrêter le serveur Rails et de le redémarrer.
Répertoriez vos migrations exécutées avec rake db:migrate:status
et vérifiez si chaque migration a été exécutée. Vous pouvez essayer d'annuler votre migration avec rake db:abort_if_pending_migrations
et essayer de migrer à nouveau.
1.
Peut-être sa valeur par défaut dans Ruby2/Rails4 mais avez-vous essayé: bundle exec rake db:migrate
?
2.
Une autre option serait de réinitialiser toute la base de données - à utiliser avec ATTENTION! réinitialise également toutes les données - bundle exec rake db:migrate:reset
+)
Je voudrais simplement m'assurer que vous exécutez tout dans le même environnement de développement:
Rails_ENV=development bundle exec rake db:migrate:reset
Rails_ENV=development bundle exec Rails s
Lancer rake db:migrate Rails_ENV=test
l'a fait pour moi
Ouvrez la base de données et cliquez sur la table schema_migration. Les migrations seront listées ci-dessous .
Triez la colonne de version et recherchez la dernière migration à revenir. Supprimer ou insérer un nouveau. Rails conserve tout l'historique de migration dans ce tableau afin que vous puissiez ajuster l'historique de migration à votre guise.
J'ai eu la même erreur dans le navigateur, mais en regardant attentivement le message d'erreur, j'ai remarqué à quel point j'avais un espace supplémentaire dans le commentaire de migration et les fichiers de publication. Une fois que je l'ai enlevé, cela a fonctionné parfaitement.
Deux raisons pour lesquelles 'db: migrate: reset' n'a pas fonctionné pour moi
1) loosing data
2) we moved from php to Rails, so we had an existing DB and the migrations were written on top of it not from the scratch
Donc ce que j’ai essayé est de mettre à jour la table 'scheema_migrations' (mysql) avec la liste des migrations (juste les valeurs de version) que j’étais vraiment sûr d’avoir déjà été exécuté sur ma base de données (développement). . Je n'essaierais pas ceci sur la production cependant.
J'ai eu la même erreur en travaillant sur le tutoriel Apprenez-en assez pour être dangereux Rails. J'utilise des terminaux Git Bash sur une machine Windows 10. L'erreur est apparue dans le terminal où je suis en train de courir, après avoir essayé de migrer ma base de données en utilisant la commande (dans un autre terminal):
$ bundle exec rake db: migrate:
Après avoir essayé la solution proposée par @lewstherin, j'ai toujours la même erreur. J'ai essayé la commande:
$ Rails test
Et j'ai eu l'avertissement explicite et utile:
Migrations are pending. To resolve this issue, run:
bin/Rails db:migrate Rails_ENV=test
J'ai lancé la commande:
$ bin/Rails db:migrate Rails_ENV=test
et maintenant je travaille encore.
Voici ce qui a fonctionné pour moi: -gem installer Rails -v 4.1.0 Dans Gemfile: -gem 'Rails', '4.1.0' (remplacez le plus récent/l'ancien par celui-ci) Effectuez l'installation en kit et mettez à jour -installation groupée -bundle updateIn votre application.rb: Remove/Comment - config.active_record.raise_in_transactional_callbacks = true
lancer bundle rake: -bundle exec rake db: migrate Rafraîchissez votre page et l'erreur devrait disparaître.
J'ai eu ce problème et c'est parce que mes fichiers Rails se trouvaient dans un dossier nommé "[Rails]". Il semble que rake n'aime pas les symboles suivants "[]" utilisés dans un nom de dossier.
J'espère que cela aide les autres à résoudre ce problème.
Je suis suppose que l'erreur est que vous créez une table qui existe déjà, j'avais ce problème auparavant .Étape 1. erreur lorsque vous ratissez dv: migrer
Étape 2 Aller au modèle où cette table est créée
Étape 3 Add drop_table: [YOUR TABLE] juste avant la table create_table: [YOUR TABLE]
Étape 2 Exécuter rake db: migrate
Étape 3 Supprimez la table de contrôle une fois la migration terminée.
J'ai eu le même problème en genieacs et ce code a aidé:
rake db:drop rake db:create rake db:schema:load Rails_ENV=development
rake db:migrate Rails s -e development