diff --git a/README.rdoc b/README.rdoc index c7f368e..0d6232e 100644 --- a/README.rdoc +++ b/README.rdoc @@ -1,3 +1,8 @@ += This fork + + Dan Sadaka changed the import_to_sql method to support multiple databases. Now use the model's connection + instead of the default. + = Crewait Check out http://jonah.org/articles/crewait_go_.html for a guide to Crewait. diff --git a/lib/crewait.rb b/lib/crewait.rb index 429191d..932254f 100644 --- a/lib/crewait.rb +++ b/lib/crewait.rb @@ -76,7 +76,9 @@ def crewait(hash) module HashMethods def import_to_sql(model_class) if model_class.respond_to? :table_name - model_class = model_class.table_name + model_table = model_class.table_name + else + model_table = model_class end keys = self.keys values = [] @@ -86,13 +88,15 @@ def import_to_sql(model_class) values = values.transpose sql = values.to_crewait_sql - while !sql.empty? do - query_string = "insert into #{model_class} (#{keys.join(', ')}) values #{sql.shift}" - while !sql.empty? && (query_string.length + sql.last.length < 999_999) do - query_string << ',' << sql.shift - end - ActiveRecord::Base.connection.execute(query_string) - end + while !sql.empty? do + query_string = "insert into #{model_table} (#{keys.join(', ')}) values #{sql.shift}" + while !sql.empty? && (query_string.length + sql.last.length < 999_999) do + query_string << ',' << sql.shift + end + # Doesn't work with multiple connections, use model's connection instead ...Dan + #ActiveRecord::Base.connection.execute(query_string) + model_class.connection.execute(query_string) + end end # this was originally called "<<", but changed for namespacing def respectively_insert(other_hash)