web-dev-qa-db-de.com

Getting: "Migrationen stehen aus; führen Sie" bin/rake db: migrate Rails_ENV = development "aus, um dieses Problem zu beheben. nach dem Klonen und Migrieren des Projekts

Ich habe mein Projekt geklont. Gebündelt mit "Bundle Install", dann "rake db: migrate" ausführen. Ich erhalte folgende Fehlermeldung: (Wenn ich den Rails-Server starte und meinen Browser für localhost öffnet: 3000) "Migrationen stehen aus; führen Sie 'bin/rake db: migrate Rails_ENV = development' aus, um dieses Problem zu beheben."

Ich habe alle Migrationen nacheinander geprüft und alle wurden fehlerfrei ausgeführt. Auch nach der Ausführung von "rake db: migrate" wurden keine Fehler angezeigt.

Das sehe ich, wenn ich " rake db: migrate: status " ausführen

Ich bin in einer Entwicklungsumgebung. Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Ich habe auch versucht, "bündel exec rake db: migrate" und "bündel exec rake db: migrate: reset" als "burninggramma" vorgeschlagen.

Irgendwelche Hinweise, was den Fehler verursacht?

18

Interessant. Haben Sie rake db: create ausgeführt? Angenommen, Sie verwenden sqlite3: 

      rm -f db/*.sqlite3
      rake db:create
      Rails_ENV=development rake db:migrate
      Rails s -e development

Können Sie auch den Inhalt Ihrer Datei config/database.yml auflisten? 

Edit: Warnung! Offensichtlich verlieren Sie Ihre vorhandenen Daten.

22
lewstherin

Nach dem Ausführen des Migrationsbefehls hatte ich immer noch den gleichen Fehler.

Was für mich funktionierte, war, den Rails-Server anzuhalten und erneut zu starten.

14
Jesus H

Listen Sie Ihre ausgeführten Migrationen mit rake db:migrate:status auf und prüfen Sie, ob jede Migration ausgeführt wurde. Sie können versuchen, Ihre Migration mit rake db:abort_if_pending_migrations abzubrechen und erneut zu migrieren.

6
Eich

1. Vielleicht ist es in Ruby2/Rails4 voreingestellt, aber haben Sie Folgendes versucht: bundle exec rake db:migrate?

2. Eine andere Option wäre das Zurücksetzen der gesamten Datenbank - Verwendung mit VORSICHT! setzt alle Daten ebenfalls zurück - bundle exec rake db:migrate:reset

+) Ich würde nur sicherstellen, dass Sie alles in der gleichen Entwicklungsumgebung ausführen: 

Rails_ENV=development bundle exec rake db:migrate:reset
Rails_ENV=development bundle exec Rails s
4
p1100i

Laufen rake db:migrate Rails_ENV=test hat es für mich getan

4
brntsllvn

Öffnen Sie die Datenbank und klicken Sie auf die Tabelle schema_migration. Die Migrationen werden wie folgt aufgelistet. _.  enter image description here

Sortieren Sie die Versionsspalte und suchen Sie die letzte Migration, die Sie zurückgehen möchten. Löschen oder Einfügen eines neuen. Rails speichert den gesamten Migrationsverlauf in dieser Tabelle, sodass Sie den Migrationsverlauf an Ihre Wünsche anpassen können.

1
zawhtut

Ich hatte den gleichen Fehler im Browser, aber als ich die Fehlermeldung genau betrachtete, fiel mir auf, dass ich in den Kommentar- und Beitragsdateien für die Migration einen zusätzlichen Leerraum hatte. Sobald ich es entfernte, funktionierte es perfekt. 

1
Parth Shah

Zwei Gründe: 'db: migrate: reset' hat bei mir nicht funktioniert 

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

Also habe ich versucht, die Tabelle 'scheema_migrations' (mysql) mit der Liste der Migrationen (nur Versionswerte) zu aktualisieren, von der ich wirklich überzeugt war, dass sie bereits auf meiner Datenbank (Entwicklung) ausgeführt wurde . Ich würde dies jedoch nicht in der Produktion versuchen.

0
nowRails

Ich habe den gleichen Fehler erhalten, als ich an dem Learn Enough to Dangerous Rails-Tutorial arbeitete. Ich verwende Git Bash-Terminals auf einem Windows 10-Computer. Der Fehler wurde in dem Terminal angezeigt, in dem ich guard ausgeführt habe, nachdem ich versucht hatte, meine Datenbank mithilfe des Befehls (in einem anderen Terminal) zu migrieren:

$ bundle exec rake db: migrate:

Nachdem ich die von @lewstherin angebotene Lösung ausprobiert hatte, bekam ich immer noch den gleichen Fehler. Ich habe den Befehl ausprobiert:

$ Rails test Und bekam die ausdrückliche und hilfreiche Warnung:

Migrations are pending. To resolve this issue, run:

bin/Rails db:migrate Rails_ENV=test

Ich habe den Befehl ausgeführt: 

$ bin/Rails db:migrate Rails_ENV=test

und jetzt arbeite ich wieder.

0
jenstreetman

Folgendes hat für mich funktioniert: -gem install Rails -v 4.1.0 In Gemfile: -gem 'Rails', '4.1.0' (Ersetzen Sie die neuere/ältere Version durch diese.) Installieren und aktualisieren Sie das Paket -Bundle installieren -bundle updateIn Ihrer application.rb: Remove/Comment - config.active_record.raise_in_transactional_callbacks = true

bundle-Rechen ausführen: -bundle exec rake db: migrate Aktualisieren Sie Ihre Seite und der Fehler sollte verschwunden sein.

0
Haider Raza

Ich hatte dieses Problem und es lag daran, dass ich meine Rails-Dateien in einem Ordner namens "[Rails]" hatte. Es scheint, als hätte Rake die folgenden Symbole "[]" in einem Ordnernamen nicht.

Hoffe, das hilft anderen bei diesem Problem.

0
Rafael Rivera

Ich bin rate der Fehler ist, dass Sie eine Tabelle erstellen, die bereits existiert, ich hatte dieses Problem vor. Schritt 1 Überprüfen Sie den Fehler, wenn Sie mit dv: migrate arbeiten

Schritt 2 Gehe zu dem Modell, in dem diese Tabelle erstellt wurde

Schritt 3 drop_table hinzufügen: [DEINE TABELLE] direkt vor dem create_table: [DEINE TABELLE]

Schritt 2 run rake db: migrate

Schritt 3 Entfernen Sie die drop_table, sobald die Migration abgeschlossen ist

0
Malek Zalfana

Ich hatte das gleiche Problem in Genies und dieser Code hat geholfen:

rake db:drop rake db:create rake db:schema:load Rails_ENV=development
rake db:migrate Rails s -e development
0