0

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 を設定しましたが、これは間違っていますか?

4

2 に答える 2