簡體   English   中英

從heroku連接到sqlserver

[英]Connect to sqlserver from heroku

我有一個遠程SQLSERVER實例,我想從heroku上托管的Rails應用程序進行連接。 我的gemfile:

gem 'activerecord-sqlserver-adapter', '~> 3.2.12'
gem 'tiny_tds'

數據庫

production:
  adapter: sqlserver
  mode: dblib
  dataserver: host.database.windows.net
  database: items
  username: username@host
  password: password
  azure: true

production.rb

dbconfig = YAML.load(ERB.new(File.read(File.join("config","database.yml"))).result)
ActiveRecord::Base.establish_connection dbconfig['production']

但是在部署過程中出現以下錯誤:

編寫config / database.yml以讀取DATABASE_URL

Preparing app for Rails asset pipeline

Running: rake assets:precompile

rake aborted!

LoadError: Please install the sqlite3 adapter: `gem install activerecord-sqlite3-adapter` (sqlite3 is not part of the bundle. Add it to Gemfile.)

似乎活動記錄需要sqlite3,但如果我有tiny_tds,則應使用sql server。

在開發環境中,一切正常。 當然,我缺少一些東西。

更新

我已經設置了自定義buildpack BUILDPACK_URL: https : //github.com/firmhouse/heroku-buildpack-ruby-freetds.git和DATABASE_URL配置變量。

更新2

在展開時使pp的dbconfig var顯示

{"production"=>
       {"adapter"=>"sqlite3",
       "database"=>"dbname",
       "username"=>"user",
       "password"=>"pass",
       "host"=>"127.0.0.1"}}

似乎heroku覆蓋了我的database.yml文件,有什么建議嗎?

更新3

我已設置DATABASE_URL = sqlserver // user:pass @ host:1433 / database這是錯誤的嗎?

我遇到了同樣的問題,終於找到了答案。

您必須在下面加上后綴:

?encoding = uft-8&azure = true

因此,您的database_url將如下所示:

sqlserver:// [用戶]:[密碼] @ [server.database.windows.net]:1433 / [數據庫]?encoding = uft-8&azure = true

希望能幫助到你

看來您需要使用自定義buildpack

在Heroku上使用此FreeTDS buildpack

要使用此buildpack,可以在創建Heroku應用程序時傳遞一個選項:

 heroku create my_new_sqlserver_app --buildpack https://github.com/firmhouse/heroku-buildpack-ruby-freetds.git 

或對於當前的應用程序:

 heroku config:add BUILDPACK_URL=https://github.com/firmhouse/heroku-buildpack-ruby-freetds.git 

配置數據庫連接

創建您的應用程序或設置您現有的應用程序以使用buildpack后,您需要修改DATABASE_URL配置變量以指向您的sqlserver實例。 我們當前使用的是SQL Server 2008 Express版本:

 heroku config:add DATABASE_URL=sqlserver://username:password@sqlserver_host:1433/database_name 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM