問題タブ [tiny-tds]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - has_many : 複数のデータベースにまたがる
複数のデータベースにまたがって has_many :through を使用して、この必要なヘルプを書き始めました。
だから私がやっていること:
私は持っている
レール3.2
deployments と呼ばれる 1 つの MSSQL DB テーブル
reports と呼ばれる 1 つの POSTGRESQL DB テーブル
呼び出された関連付けを結合するための POSTGRESQL DB テーブルを使用
関連付けの作成は正常に機能し、テーブルに両方の ID が入力されますが、データを取得しようとすると、次のようになります。
しかし、これを逆の方法で行うと、これは私が奇妙に感じるものです。
これは私が期待することですが、他の方法で機能しない理由を誰か教えてください。
ruby - 英数字キーを使用すると、続編の many_to_one 関連付けが「変換に失敗しました」で失敗する
私は既存の MSSQL データベースを使用していますが、これは他の人によって構築されたレガシー アプリケーションであるため、ほとんどまたはまったく制御できません。1 対多の関連付けで 2 つのテーブルを関連付けようとしています。
関連付けを定義するコード スニペットは次のとおりです。
注:これらのクラスは両方とも、関連付けなしで期待どおりに機能します...
ただし、関連付けを使用しようとしたときに得られる出力は次のとおりです。
#10665277
どれを使っても同じ数字になるので何を表しているのかわからないroll_num
ので、それが解決のカギになるのではないかと思うのですが、今のところ途方に暮れています。
キーが英数字であるため、関連付けを定義するときに何か間違ったことをしていますか? これに関するSEQUELドキュメントには何も見つかりませんでした。
明らかに、私は単純にすべての記録をroll_history
適切なものから収集することができましたroll_num
。実際、それは私が今行っていることです... しかし、関連付けが機能しない理由を理解したいと思います.
sql - DB に増分値を格納する際の MS SQL での Rails 同時実行の問題
Rails 3.2.3 を使用し、tinyTDS を使用して接続する MS SQL Sever のインスタンスの上にあるアプリケーションを実行しています。アプリケーションは、ユニコーンを使用して 4 つのプロセスを持つマルチスレッド化されています。問題は、各リクエストに一意のアカウント番号を割り当てるためにインクリメントする必要がある番号を格納するために、アプリケーションがデータベース内のフィールドを使用することです。アプリケーションをローカルで実行しても、マルチスレッドではないため問題はありません。
ユニコーンを使用してステージング環境で実行しているときに、複数の同時リクエストでアプリケーションをヒットすると、10 人に 1 人程度が重複したカード番号で戻ってきます。私は以下を試しました。
レガシーコード
レガシー コード + トランザクション
結果:効果なし
レガシー コード + with_lock
結果: with_lock が定義されていないというエラー
レガシー コード + with_lock
結果:ロックが定義されていないというエラー
gem - 「gem install tiny_tds」ができない OS X Mavericks
エラー
$ sudo gem install tiny_tds
ネイティブ拡張機能の構築。これにはしばらく時間がかかる場合があります...
エラー: tiny_tds のインストール中にエラーが発生しました:
エラー: gem ネイティブ拡張のビルドに失敗しました。
/システム/ライブラリ/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
iconv.h で iconv_open() をチェックしています... いいえ
-liconv で iconv_open() をチェックしています...はい
sybfront.h をチェックしています...はい
sybdb.h をチェックしています...はい
-lsybdb で tdsdbopen() をチェックしています...いいえ
ホームブリュー
上記のエラーは、
$ brew install freetds
手動インストール
$ tar zxf freetds-stable.tgz
$ cd freetds-0.91
$ ./configure
$メイク
$ sudo make install
に次のファイルがないようです/usr/local/lib/
:
libsybdb.so
代わりに、次のファイルがあります。
libsybdb.a
libsybdb.dylib
libsybdb.la
リサーチ
ruby-on-rails - herokuからsqlserverに接続
Heroku でホストされている Rails アプリから接続したいリモート SQLSERVER インスタンスがあります。私の宝石ファイル:
データベース.yml
production.rb
しかし、展開プロセス中に次のエラーが発生します。
config/database.yml を記述して DATABASE_URL から読み取る
Active レコードには sqlite3 が必要なようですが、tiny_tds がある場合は sql サーバーを使用する必要があります。
開発環境では、すべて正常に動作します。確かに私には欠けているものがあります。
アップデート
カスタム ビルドパックの BUILDPACK_URL: https://github.com/firmhouse/heroku-buildpack-ruby-freetds.git と DATABASE_URL 構成変数を既にセットアップしています。
更新 2
展開中に dbconfig var の pp を作成すると、これが表示されます
heroku が私の database.yml ファイルを上書きしているようですが、何か提案はありますか?
更新 3
DATABASE_URL=sqlserver//user:pass@host:1433/database を設定しましたが、これは間違っていますか?
ruby - アプリ Heroku をプッシュできません - Bundler 経由で tiny_tds をインストールできませんでした
これは私のGemfileの外観です:
アプリを Heroku にプッシュした場合の出力:
私のローカルホストでは完全に動作します。リポジトリを削除して新しいリポジトリを作成するか、herokuを再起動してみました。heroku に tiny_tds をインストールするにはどうすればよいですか? なにが問題ですか?
編集 25/7/14
このエラーは、dyno に freetds ライブラリがないために発生します。このようなライブラリを使用するには、カスタム ビルドパックを使用する必要があります。インターネット上にはオープンソースのビルドパックがたくさんあります。例: https://github.com/firmhouse/heroku-buildpack-ruby-freetds。
Damien への tnx (Heroku サポート)
ruby - os.x 10.9.4 に tiny_tds をインストールできない
OS.X Mavericks を実行している Mac に tiny_tds をインストールしようとしていますが、次のエラーが表示されます。
次のコマンドを使用して tiny_tds をインストールしています。
調べましたが方法iconv.h
がありませんiconv_open()
。
ちなみに、ruby 2.0.0p451 を使っています。