Heroku でホストされている Rails アプリから接続したいリモート SQLSERVER インスタンスがあります。私の宝石ファイル:
gem 'activerecord-sqlserver-adapter', '~> 3.2.12'
gem 'tiny_tds'
データベース.yml
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.)
Active レコードには sqlite3 が必要なようですが、tiny_tds がある場合は sql サーバーを使用する必要があります。
開発環境では、すべて正常に動作します。確かに私には欠けているものがあります。
アップデート
カスタム ビルドパックの BUILDPACK_URL: https://github.com/firmhouse/heroku-buildpack-ruby-freetds.git と DATABASE_URL 構成変数を既にセットアップしています。
更新 2
展開中に dbconfig var の pp を作成すると、これが表示されます
{"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 を設定しましたが、これは間違っていますか?