Depois de instalar o usuário MODEL do devise, entendi.
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
Agora, se eu fizer rake db: migrate, a tabela de usuários será criada.
Como posso reverter essa migração, ou seja, como posso deletar a tabela de usuários usando o rake novamente?
ruby-on-rails
ruby-on-rails-3.1
migration
rake
database-migration
evitativamente
fonte
fonte
UnknownMigrationVersionError
mas descobri que é porque minhas migrações estão dentrodb/migrate/main
, alguém sabe uma solução alternativa para issodb:migrate:down
olhar dentro desse diretório específico ou dos subdiretórios de migração?Basta executar este comando:
fonte
Acredito que haja três opções disponíveis para reverter migrações (elas também se sobrepõem):
Role para baixo a migração mais recente :
rake db:migrate:down
# Rails 2 apenas.Role um número (n) de migrações recentes:
rake db:rollback STEP=n
Role para uma versão anterior específica :
$ rake db:migrate:down VERSION=nnn
# Rails 3 (forneça também o número da versão).Número da versão significa SHA (Secure Hash Algorithm) para o commit, que é um longo número hexadecimal que se parece com 886af3194768917c78e ... Você pode ver isso fazendo
git log
Você pode ver esses comandos (e outros) com suas descrições, usando o
rake -T db:
qual para o rails 3.2 inclui:fonte
rake db:migrate VERSION=<version number>
rake db:migrate:down
aborta com a mensagem de erro "VERSION is required". O recomendado,rake db:rollback
entretanto, funciona.STEP
VERSION
$ rake db:migrate:down VERSION=nnn
não rola para uma versão, ele migra para a versão especificada.Você pode fazer rollback e especificar quantas últimas migrações serão revertidas, por exemplo
para as 3 últimas migrações.
fonte
Como um novo programador (ou para outros novos programadores)
rake db:rollback
funciona na metade do tempo. Eu começo por aí.Se não,
rake db:migrate:down VERSION=3846656238
conecte VERSION para o número da versão do seu arquivo de migração que você deseja reverter.
fonte
Isso vai desfazer e reaplicar a última migração.
fonte
Para trilhos 5, podemos usar
rails command instead of rake
exemplo
fonte
Execute este comando em seu terminal:
ou
Ele mostra o status, IDs de migração, nome de migração para todas as migrações que executamos anteriormente. selecione seu id de migração (ou seja, seu número de versão) e coloque esse id no seguinte comando após version = ,,, e pressione enter
fonte
Como reverter uma migração
(1) Identifique primeiro o ID de migração
rake db:migrate:status
(2) Em seguida, reverta a migração
rake db:migrate:down VERSION=20190802023239
....... e agora você está pronto para as corridas!
fonte