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

UnknownMigrationVersionErrorpero me di cuenta de que es porque mis migraciones están adentrodb/migrate/main, ¿alguien sabe una solución para que esto puedadb:migrate:downver 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=nDesplá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 logPuede 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:downaborto con el mensaje de error "Se requiere VERSIÓN". Sin embargo, lo recomendadorake db:rollbackfunciona.STEPyVERSION$ rake db:migrate:down VERSION=nnnno 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:rollbackfunciona aproximadamente la mitad del tiempo. Empiezo por ahí.Si no,
rake db:migrate:down VERSION=3846656238inserte 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 rakeejemplo
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