【发布时间】:2018-02-21 19:15:29
【问题描述】:
我正在尝试更新一个名为 textacular 的 gem,以与最新的 rails 版本兼容。
在开发 Rake 任务中,我们需要运行一些 ActiveRecord 迁移 - 没有 Rails。
今天看起来像:
namespace :migrate do
desc 'Run the test database migrations'
task :up => :'db:connect' do
ActiveRecord::Migrator.up 'db/migrate'
end
desc 'Reverse the test database migrations'
task :down => :'db:connect' do
ActiveRecord::Migrator.down 'db/migrate'
end
end
但是,当使用 ActiveRecord >= 5 时,它会失败:
NoMethodError: undefined method 'up' for ActiveRecord::Migrator:Class.
我试图查看 ActiveRecord 的源代码,尝试了很多不同的方法,但都没有成功运行迁移。
有人知道该怎么做吗?
编辑
使用ActiveRecord::Migration.up 没有任何作用,可能只是基于方法的returns。
使用ActiveRecord::Migration.migrate(:up) 给出输出:
== ActiveRecord::Migration: migrating ========================================
== ActiveRecord::Migration: migrated (0.0000s) ===============================
所有迁移都在文件夹db/migrate中。
【问题讨论】:
-
您使用的是哪个 Rails 版本的 Migration-class?
-
根本不使用Rails,目前只使用
activerecord (5.1.5)。 @AndresEhrenpreis
标签: ruby-on-rails ruby activerecord