我最初只使用一個數據庫,但我需要添加客戶端其他數據庫,這是SQL Server數據庫。我能夠連接,但我遇到了一些問題。如何從Rails(PostgreSQL和SQL Server)中的雙重數據庫中提取數據
原始滿的database.yml
development:
adapter: postgresql
database: martin_development
username: *******
password: *******
pool: 5
timeout: 5000
development_sec:
adapter: sqlserver
host: *******
port: 1433
database: Database1
username: *******
password: *******
我得到以下錯誤:
TinyTds::Error (Database 'DATABASE1' does not exist. Make sure that the name is entered correctly.)
如果我拿出數據庫名稱,所以它看起來是這樣的:
development_sec:
adapter: sqlserver
host: *******
port: 1433
database:
username: *******
password: *******
一切似乎運行正常,我沒有得到任何關於數據庫沒有找到的錯誤消息。但是,該數據庫確實存在於客戶端。
我很困惑如何從我的客戶SQL Server數據庫提取數據。我想有一些資源,我發現了,所以我的項目文件,到目前爲止在尋找這樣沿着沿:
模型(Mssql.rb)
class MssqlBase < ActiveRecord::Base
establish_connection :development_sec
self.abstract_class = true
end
模型(site.rb)
class Site < MssqlBase
end
控制器(sites_controller.rb)
class SitesController < ApplicationController
def index
@sites = Site.all
@hash = Gmaps4rails.build_markers(@sites) do |site, marker|
marker.lat site.latitude
marker.lng site.longitude
end
end
end
的database.yml
development:
adapter: postgresql
database: martin_development
username: *******
password: *******
pool: 5
timeout: 5000
development_sec:
adapter: sqlserver
host: *******
port: 1433
database:
username: *******
password: *******
我的目標是開始拉動從數據庫數據,但由於這一下在問候我的文件,我收到以下錯誤現在:
ActiveRecord::StatementInvalid (TinyTds::Error: Invalid object name 'sites'.: SELECT [sites].* FROM [sites]):
所以剛開始我需要它從'DATABASE1'中讀取,但它表示它不存在。當我由於某種原因而將它關閉時,它與服務器連接,但我不知道哪個數據庫。現在我正在嘗試提取數據,但收到無效聲明。任何幫助,將不勝感激。
你連接到哪個版本的MSSQL的?你用什麼寶石來連接。據我所知,你不能像沒有安裝適配器一樣將其設置爲MySQL。 – Beartech
我正在使用tiny-tds gem和activerecord -sqlserver-adapter。它的版本是2008 r2。 –
您可以嘗試使用以下命令連接irb:'require'rubygems';' 'require'tiny_tds';' 'client = TinyTds :: Client。new:username =>'*******',:password =>'*****',:host =>'host_url';' 顯然,用您的信息替換用戶名,密碼和主機url 。 – Beartech