首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails数据库分片和存储过程

Rails数据库分片和存储过程
EN

Stack Overflow用户
提问于 2014-07-07 06:03:27
回答 2查看 245关注 0票数 0

我使用tchandy/octopus gem进行数据库分片。我有一个要求,就是在不同的sql server数据库上执行存储过程。我如何使用这个gem来做这件事呢?

任何帮助都将不胜感激。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-07-07 15:03:54

如果您使用的是ActiveRecord SQLServer适配器,请检查:

http://rubydoc.info/gems/activerecord-sqlserver-adapter/3.2.9/ActiveRecord/ConnectionAdapters/Sqlserver/DatabaseStatements:execute_procedure

在您的代码中执行类似以下操作

代码语言:javascript
复制
class Pro::DataImport < ActiveRecord::Base
  def self.update(user)
    self.execute_procedure("Stored Procedure Name", arg1, arg2)
  end
end

每个普通SQL查询都转换为要执行的存储过程。这就是用于ActiveRecord的SQL Server适配器的工作方式。因此,对于数据库中定义的永久存储过程,您只需担心这一点。

票数 0
EN

Stack Overflow用户

发布于 2014-07-07 23:25:12

感谢您的回复。

我正在做这样的事情:

代码语言:javascript
复制
class Order < ActiveRecord::Base
    def self.call_proc_example shard
        Octopus.using( shard.to_sym ) do
            self.select_all( "exec [dbo].[proc_name_example];" );
        end
    end
end

它对我来说很有效,因为我有很多数据库来执行过程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24600726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档