2014-07-06 6 views
0

Я использую драгоценный камень tchandy/octopus для оцифровки базы данных. И у меня есть требование, заключается в том, чтобы выполнять хранимые процедуры в разных базах данных SQL-сервера. Как я могу это сделать, используя этот камень?Окраска базы данных Rails и хранимые процедуры

Любая помощь будет оценена по достоинству. Благодарю.

ответ

0

, если вы используете SQLServer адаптер ActiveRecord, контроль:

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

сделать что-то подобное в вашем коде

class Pro::DataImport < ActiveRecord::Base 
    def self.update(user) 
    self.execute_procedure("Stored Procedure Name", arg1, arg2) 
    end 
end 

Каждый нормальный SQL-запрос преобразуется в хранимую процедуру, чтобы быть казнены. Так работает адаптер SQL Server для ActiveRecord. Поэтому вам нужно только беспокоиться об этом для постоянных хранимых процедур, определенных в базе данных.

0

Спасибо за ваш ответ.

Я делаю что-то вроде этого:

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 

Это работает для меня, так как у меня есть много баз данных для выполнения процедур.

Смежные вопросы