是否有一种简单的方法来运行单个迁移?我不想迁移到某个版本,我只想运行一个特定的版本。
当前回答
方法一:
rake db:migrate:up VERSION=20080906120000
方法2:
在Rails控制台中 1. 在控制台复制粘贴迁移类(例如add_name_to_user.rb) 2. 然后在控制台输入以下命令
Sharding.run_on_all_shards{AddNameToUser.up}
结束了!!
其他回答
如果你在路径上有问题,你可以使用
require Rails.root + 'db/migrate/20090408054532_add_foos.rb'
至于rails 5,你也可以使用rails来代替rake
Rails 3 - 4
# < rails-5.0
rake db:migrate:up VERSION=20160920130051
Rails 5
# >= rails-5.0
rake db:migrate:up VERSION=20160920130051
# or
rails db:migrate:up VERSION=20160920130051
方法一:
rake db:migrate:up VERSION=20080906120000
方法2:
在Rails控制台中 1. 在控制台复制粘贴迁移类(例如add_name_to_user.rb) 2. 然后在控制台输入以下命令
Sharding.run_on_all_shards{AddNameToUser.up}
结束了!!
这是再次运行迁移文件“20150927161307_create_users.rb”的步骤
运行控制台模式。(rails c) 将该文件中的类复制到控制台。 类CreateUsers < ActiveRecord::Migration def变化 Create_table:users do |t| t.string:名字 t.string:电子邮件 T.timestamps null: false结束 结束 结束 结束 创建CreateUsers类的实例:c1 = CreateUsers.new 执行该实例的方法更改:c1.change
看起来至少在最新的Rails发行版(撰写本文时为5.2)中还有一种过滤正在运行的迁移的方法。可以在SCOPE环境变量中传递一个过滤器,然后使用该过滤器选择迁移文件。
假设您有两个迁移文件1_add_foos。Rb和2_add_fos .run_this_one. Rb运行
SCOPE=run_this_one rails db:migrate:up
将只选择并运行2_add_fos .run_this_one.rb。请记住,将运行与范围匹配的所有迁移文件。
推荐文章
- 如何找到包含匹配值的哈希键
- 未初始化的常量ActiveSupport::Dependencies::Mutex (NameError)
- 如何在Rails中找到当前的路由?
- 在Ruby中->运算符叫什么?
- Rails参数解释?
- Ruby中DateTime和Time的区别
- 如何从代理服务器后面更新Ruby Gems (ISA-NTLM)
- 如何用另一个键替换哈希键
- 添加一个CSS类<%= f.submit %>
- attr_accessor和attr_accessible的区别
- 如何从Ruby文件路径中获得没有扩展名的文件名
- 创建新用户时出现ActiveModel::ForbiddenAttributesError
- rvm安装失败:“rvm不是一个函数”
- 覆盖设计注册控制器
- 学习Ruby on Rails