gpt4 book ai didi

ruby-on-rails - 在没有 Rails 的情况下运行 ActiveRecord 迁移

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:16 24 4
gpt4 key购买 nike

我正在尝试更新名为 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:ActiveRecord::Migrator:Class 的未定义方法“up”

我曾尝试查看 ActiveRecord 的源代码,尝试了多种不同的方法,但未能成功运行迁移。

有没有人知道该怎么做?

编辑

使用 ActiveRecord::Migration.up 什么都不做,可能只是根据方法返回

使用 ActiveRecord::Migration.migrate(:up) 给出输出:

==  ActiveRecord::Migration: migrating ========================================
== ActiveRecord::Migration: migrated (0.0000s) ===============================

所有迁移都在文件夹 db/migrate 中。

最佳答案

你也可以使用这个命令:

ActiveRecord::MigrationContext.new(Rails.root.join('db', 'migrate'), ActiveRecord::SchemaMigration).migrate

关于ruby-on-rails - 在没有 Rails 的情况下运行 ActiveRecord 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48913735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com