web-dev-qa-db-fra.com

Obtenir: "Les migrations sont en attente; exécutez 'bin/rake db: migrate Rails_ENV = development' pour résoudre ce problème." après clonage et migration du projet

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?

18
Stefanos.Ioannou

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.

22
lewstherin

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.

14
Jesus H

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.

6
Eich

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
4
p1100i

Lancer rake db:migrate Rails_ENV=test l'a fait pour moi

4
brntsllvn

Ouvrez la base de données et cliquez sur la table schema_migration. Les migrations seront listées ci-dessous .  enter image description here

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.

1
zawhtut

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. 

1
Parth Shah

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.

0
nowRails

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.

0
jenstreetman

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.

0
Haider Raza

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.

0
Rafael Rivera

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.

0
Malek Zalfana

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
0
Mojtaba Behroozifar