微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以在特定环境的 rails 中使用单独的模式

如何解决是否可以在特定环境的 rails 中使用单独的模式

导轨 6

我有一个 rails 应用程序,它与许多数据库交互,包括应用程序拥有的一个数据库和其他几个远程托管的内容不在应用程序架构中的应用程序。

所以我有

class ModelA # 带有迁移和架构 class ExternalDB1::ModelB# 没有本地迁移,不在架构中 class ExternalDB2::ModelC# 没有本地迁移,不在架构中

这工作正常,但在测试环境中,我们想假设 class ExternalDB1::ModelBclass ExternalDB2::ModelC 只是普通的本地模型,因此我们不需要在测试期间访问远程数据库。所以在这种情况下,他们会得到一个工厂,但是,工厂想要一个表来保存它们(我们正在对这些对象进行复杂的多请求集成测试,所以我认为 skip_create 不会起作用)

我的想法是尝试做类似的事情

class CreateExternalDBTables < ActiveRecord::Migration[6.0]
  def change
    return unless Rails.env == "test" 

    create_table :external_class_ones do |t|
      t.string :name

      t.timestamps
    end


    create_table :external_class_twos do |t|
      t.string :name

      t.timestamps
    end
  end
end

但这意味着 test 环境将具有与其他环境完全不同的架构。

反正有特定于环境的架构吗?

或者我应该用完全不同的方式来解决这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。