安装DEVICE MODEL用户后,我得到了这个。
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
现在,如果我执行rake db:migrate,将创建用户表。
如何恢复此迁移,即如何再次使用rake删除用户表?
9条答案
按热度按时间3vpjnl9f1#
运行以下命令
其中
<version>
是要还原的迁移文件的版本号。例如,如果要还原文件名为3846656238_create_users.rb的迁移
rake数据库:迁移:关闭版本=3846656238
yr9zkbsy2#
只需运行以下命令:
uttx8gqw3#
我认为有三个选项可用于恢复迁移(它们也会重叠):
1.向下滚动"最近“迁移:
rake db:migrate:down
#仅限导轨2。1.下滚 * 最近迁移的 * 数量(n):
一个月一个月
1.向下滚动 * 至 * 先前的 * 特定 * 版本:
$ rake db:migrate:down VERSION=nnn
# Rails 3(同时提供版本号)。版本号表示提交的SHA(安全哈希算法),它是一个长的十六进制数字,看起来像886af3194768917c78e...您可以通过执行
git log
来查看它您可以使用
rake -T db:
查看这些命令(以及其他命令)及其说明,对于Rails 3.2,rake -T db:
包括:a64a0gku4#
您可以执行回滚并指定要回滚的最后迁移数,例如
最后3次迁移。
pkmbmrz75#
作为新程序员(或其他新程序员)
rake db:rollback
工作大约一半的时间,我从那里开始。如果不是,
rake db:migrate:down VERSION=3846656238
插入VERSION作为要恢复的迁移文件的版本号。
h7appiyu6#
它将撤消并重新应用上一次迁移。
o7jaxewo7#
对于轨道5,我们可以使用
rails command instead of rake
这些例子
Rails数据库:迁移:关闭版本=20170330090327
4c8rllxm8#
在终端中运行以下命令:
或
它显示了我们之前运行的所有迁移的状态、迁移ID、迁移名称。选择您的迁移ID(即版本号),并将该ID放在以下命令中的version=、、、之后,然后按Enter键
kokeuurv9#
如何回滚迁移
另一种方式。我更喜欢这种方式,因为你需要明确,而不是回滚-以防万一你可能会犯错误。
(1)首先确定迁移ID
rake db:migrate:status
(2)然后回滚迁移
rake db:migrate:down VERSION=20190802023239
.......现在你要去参加比赛了!