Después de instalar devise MODEL User obtuve esto.
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
Ahora, si hago rake db: migrate, se creará la tabla de usuarios.
¿Cómo puedo revertir esta migración, es decir, cómo puedo eliminar la tabla de usuarios usando rake nuevamente?
ruby-on-rails
ruby-on-rails-3.1
migration
rake
database-migration
astutamente
fuente
fuente
UnknownMigrationVersionError
pero me di cuenta de que es porque mis migraciones están adentrodb/migrate/main
, ¿alguien sabe una solución para que esto puedadb:migrate:down
ver dentro de ese directorio específico o los subdirectorios de migración?Simplemente ejecute este comando:
fuente
Creo que hay tres opciones disponibles para revertir las migraciones (también se superponen):
Despliegue la migración más reciente :
rake db:migrate:down
# Solo rieles 2.Despliegue hacia abajo un número (n) de migraciones recientes:
rake db:rollback STEP=n
Desplácese hacia abajo a una versión específica anterior :
$ rake db:migrate:down VERSION=nnn
# Rails 3 (proporcione también el número de versión).Número de versión significa SHA (algoritmo hash seguro) para la confirmación, que es un número hexadecimal largo que se parece a 886af3194768917c78e ... Puede verlo haciendo
git log
Puede ver estos comandos (y otros) con sus descripciones usando
rake -T db:
que para rails 3.2 incluye:fuente
rake db:migrate VERSION=<version number>
rake db:migrate:down
aborto con el mensaje de error "Se requiere VERSIÓN". Sin embargo, lo recomendadorake db:rollback
funciona.STEP
yVERSION
$ rake db:migrate:down VERSION=nnn
no se reduce a una versión, se migra a la versión especificada.Puede revertir y especificar cuántas últimas migraciones se revertirán, p. Ej.
para 3 últimas migraciones.
fuente
Como programador nuevo (o para otros programadores nuevos)
rake db:rollback
funciona aproximadamente la mitad del tiempo. Empiezo por ahí.Si no,
rake db:migrate:down VERSION=3846656238
inserte VERSION para el número de versión de su archivo de migración que desea revertir.
fuente
Deshacerá y volverá a aplicar la última migración.
fuente
Para rieles 5 podemos usar
rails command instead of rake
ejemplo
fuente
Ejecute este comando en su terminal:
o
Muestra el estado, los ID de migración y el nombre de la migración de todas las migraciones que ejecutamos anteriormente. seleccione su ID de migración (es decir, su número de versión) y coloque ese ID en el siguiente comando después de version = ,,, y presione enter
fuente
Cómo revertir una migración
(1) Primero identifique el ID de migración
rake db:migrate:status
(2) Luego, revertir la migración
rake db:migrate:down VERSION=20190802023239
....... y ahora te vas a las carreras!
fuente