Nach der Installation von devise MODEL User habe ich dies bekommen.
class DeviseCreateUsers < ActiveRecord::Migration
def self.up
create_table(:users) do |t|
t.database_authenticatable :null => false
t.recoverable
t.rememberable
t.trackable
# t.encryptable
# t.confirmable
# t.lockable :lock_strategy => :failed_attempts, :unlock_strategy => :both
# t.token_authenticatable
t.timestamps
end
add_index :users, :email, :unique => true
add_index :users, :reset_password_token, :unique => true
# add_index :users, :confirmation_token, :unique => true
# add_index :users, :unlock_token, :unique => true
# add_index :users, :authentication_token, :unique => true
end
def self.down
drop_table :users
end
end
Wenn ich jetzt db: rake mache, wird die Benutzertabelle erstellt.
Wie kann ich diese Migration zurücksetzen, dh wie kann ich die Benutzertabelle erneut mit Rake löschen?
UnknownMigrationVersionError
aber ich habe herausgefunden, dass meine Migrationen darin enthalten sind. Kenntdb/migrate/main
jemand eine Problemumgehung,db:migrate:down
um in diesem bestimmten Verzeichnis oder in den Unterverzeichnissen für die Migration nachzuschauen?Führen Sie einfach diesen Befehl aus:
quelle
Ich glaube, es gibt drei Möglichkeiten, um Migrationen zurückzusetzen (sie überschneiden sich auch):
Führen Sie die letzte Migration herunter :
rake db:migrate:down
# Nur Schienen 2.Führen Sie eine Anzahl (n) der letzten Migrationen aus:
rake db:rollback STEP=n
Rolldown zu einer früheren, spezifischen Version:
$ rake db:migrate:down VERSION=nnn
# Rails 3 (auch Versionsnummer angeben).Versionsnummer bedeutet SHA (Secure Hash Algorithm) für das Commit. Hierbei handelt es sich um eine lange Hexadezimalzahl, die ungefähr wie 886af3194768917c78e aussieht. Sie können dies sehen, indem Sie dies tun
git log
Sie können diese Befehle (und andere) mit ihren Beschreibungen anzeigen, indem Sie Folgendes
rake -T db:
für Schienen 3.2 verwenden:quelle
rake db:migrate VERSION=<version number>
rake db:migrate:down
Vorgang wird mit der Fehlermeldung "VERSION ist erforderlich" abgebrochen. Das empfohlenerake db:rollback
funktioniert jedoch.STEP
undVERSION
$ rake db:migrate:down VERSION=nnn
wird kein Rolldown auf eine Version durchgeführt, sondern die angegebene Version wird migriert .Sie können ein Rollback durchführen und angeben, wie viele letzte Migrationen zurückgesetzt werden sollen, z
für 3 letzte Migrationen.
quelle
Als neuer Programmierer (oder für andere neue Programmierer)
rake db:rollback
funktioniert etwa die halbe Zeit. Ich fange dort an.Wenn nicht,
rake db:migrate:down VERSION=3846656238
Fügen Sie VERSION für die Versionsnummer Ihrer Migrationsdatei ein, die Sie zurücksetzen möchten.
quelle
Die letzte Migration wird rückgängig gemacht und erneut angewendet.
quelle
Für Schienen 5 können wir verwenden
rails command instead of rake
Beispiel
quelle
Führen Sie diesen Befehl in Ihrem Terminal aus:
oder
Es zeigt den Status, die Migrations-IDs und den Migrationsnamen für alle zuvor durchgeführten Migrationen an. Wählen Sie Ihre Migrations-ID (dh Ihre Versionsnummer) aus und geben Sie diese ID nach version = ,, in den folgenden Befehl ein. Drücken Sie die Eingabetaste
quelle
Zurücksetzen einer Migration
(1) Identifizieren Sie zuerst die Migrations-ID
rake db:migrate:status
(2) Führen Sie dann einen Rollback der Migration durch
rake db:migrate:down VERSION=20190802023239
....... und jetzt geht es los zu den Rennen!
quelle