Après avoir installé le modèle utilisateur de modèle, j'ai obtenu ceci.
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
Maintenant, si je rake db: migrer la table des utilisateurs sera créée.
Comment puis-je annuler cette migration, c'est-à-dire comment supprimer à nouveau la table des utilisateurs à l'aide de rake?
UnknownMigrationVersionError
mais j'ai compris que c'est parce que mes migrations sont à l'intérieurdb/migrate/main
, est-ce que quelqu'un connaît une solution de contournement pour que celadb:migrate:down
regarde dans ce répertoire spécifique ou dans les sous-répertoires de migration?Exécutez simplement cette commande:
la source
Je pense qu'il existe trois options disponibles pour annuler les migrations (elles se chevauchent également):
Roll down la migration la plus récente :
rake db:migrate:down
# Rails 2 uniquement.Roll down un certain nombre (n) de migrations récentes:
rake db:rollback STEP=n
Passer à une version précédente et spécifique :
$ rake db:migrate:down VERSION=nnn
# Rails 3 (indiquez également le numéro de version).Numéro de version signifie le SHA (Secure Hash Algorithm) pour le commit qui est un long nombre hexadécimal qui ressemble à 886af3194768917c78e ... Vous pouvez le voir en faisant
git log
Vous pouvez voir ces commandes (et d'autres) avec leurs descriptions en utilisant
rake -T db:
ce qui inclut for rails 3.2:la source
rake db:migrate VERSION=<version number>
rake db:migrate:down
abandonne avec le message d'erreur "VERSION est requise". Le recommandérake db:rollback
fonctionne cependant.STEP
etVERSION
$ rake db:migrate:down VERSION=nnn
ne passe pas à une version, il migre vers le bas de la version spécifiée.Vous pouvez effectuer une restauration et spécifier le nombre de dernières migrations qui seront annulées, par exemple
pour 3 dernières migrations.
la source
En tant que nouveau programmeur (ou à d'autres nouveaux programmeurs)
rake db:rollback
fonctionne environ la moitié du temps. Je commence par là.Si non,
rake db:migrate:down VERSION=3846656238
branchez VERSION pour le numéro de version de votre fichier de migration que vous souhaitez rétablir.
la source
Il annulera et réappliquera la dernière migration.
la source
Pour les rails 5, nous pouvons utiliser
rails command instead of rake
exemple
la source
Exécutez cette commande dans votre terminal:
ou
Il montre l'état, les ID de migration et le nom de la migration pour toutes les migrations que nous avons exécutées précédemment. sélectionnez votre identifiant de migration (c'est-à-dire votre numéro de version) et mettez cet identifiant dans la commande suivante après version = ,,, et appuyez sur Entrée
la source
Comment annuler une migration
(1) Identifiez d'abord l'ID de migration
rake db:migrate:status
(2) Puis annulez la migration
rake db:migrate:down VERSION=20190802023239
....... et maintenant vous partez pour les courses!
la source