問題タブ [sequel]
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 - 1つのプロセスで複数のデータベース接続のsinatraアプリケーションで使用するORMは何ですか?
ActiveRecord、DataMapper、Sequelをチェック:グローバル(静的変数)を使用するものもあれば、モデルを含むソースファイルをロードする前にデータベース接続を開く必要があるものもあります。さまざまなデータベースを使用するsinatraアプリケーションで使用するのに適したORM。
ruby - Sequel の last_insert_id メソッドはありますか?
挿入後、行から ID を知る必要があります。どうすればよいですか?
ruby - データベースへの既存の ruby の続編接続を切断するには?
私は以前に確立されたものを意味します
また
また
またはなど。
Sequel::Database クラスには、「接続」はありますが、「切断」などと呼ばれるパブリック インスタンス メソッドはありません。
誰かがすでにその問題に直面しているかもしれません。任意のアイデアをいただければ幸いです。
ruby - Ruby のデータベース抽象化/アダプター
Ruby で使用しているデータベースの抽象化/アダプターは何ですか? 私は主にデータ指向の機能に興味がありますが、オブジェクト マッピング (アクティブ レコードやデータ マッパーなど) には興味がありません。
現在Sequelを使用しています。他のオプションはありますか?
私は主に興味があります:
- シンプルでクリーンで曖昧でない API
- データの選択 (当然)、フィルタリング、集計
- フィールドマッピングなしの生の値の選択: SELECT col1, col2, col3 => [val1, val2, val3] { :col1 => val1 ...} のハッシュではありません
- 選択する列/値のリストを渡すことができます: select(array_of_columns) (列が既知である必要がある dataset.select(:col1, :col2, :col3) ではありません)
- API は、テーブル スキーマ 'some_schema.some_table' を一貫した (そして機能する) 方法で考慮します。これも反映(テーブルからスキーマを取得)
- データベース リフレクション: テーブル列、それらのデータベース ストレージ タイプ、およびおそらくアダプターの抽象化タイプのリストを取得します
- テーブルの作成、削除
- 列挙されているテーブルからすべてのレコードをフェッチする必要なく、別のテーブルからの選択を列挙するループで他のテーブルを操作 (挿入、更新) できる
目的は、コードの記述時に未知の構造を持つデータを操作することです。これは、構造または構造の大部分が通常よく知られているオブジェクト マッピングとは逆です。オブジェクト マッピングのオーバーヘッドは必要ありません。
オブジェクト マッピング ライブラリのバックエンドを含め、どのようなオプションがありますか?
sql - Sequel で生の SQL クエリを実行する方法
Sequel で生の SQL クエリを実行する適切な方法については、まだ明確ではありません。
現在、私はこれを試しています:
クエリを生の SQL として実行し、通常のように結果にアクセスするにはどうすればよいですか?
ruby - 続編の例が実行されない
Ruby の「続編」gem をインストールしました。Sequel Web サイトの例を試してみたかったのですが、うまくいきません :( test.rb:
コンソール:
ruby - より複雑な Sequel の選択
Sequel には単純なデータベースがあります。
質問: DateTime のような「奇妙な」オブジェクトをデータベースに保存するのは良い考えですか?
「2010」を出力するので、うまくいきます。しかし、それでも私はそれについて非常に興味があります。問題がなければ、フィルタリングはどうでしょうか。そういうもの:
...うまくいきません。他の方法でそれを行うことは可能ですか?どのように?
ruby-on-rails - Active Record から Sequel への移行方法
私は Rails3.rc と Active Record 3 (meta_where を使用) を使用していますが、Sequel に切り替え始めたばかりです。
私はすでに active_model プラグイン (およびその他のプラグイン) を使用しています。
私の知る限り、
User[params[:id]]
の代わりに使用する必要がありUser.find(params[:id])
ます。ただし、レコードが存在しない場合は発生せず、値を整数 (PK の型) に変換しないため、where
句内の文字列として使用されます。これがパフォーマンスの問題を引き起こしているかどうかはわかりません。これは害がありidentity_map
ますか?これらの両方の問題を解決する最善の方法は何ですか?User.messages_dataset
およびのような関連付けの使用法を反転して、Active Record のように動作させる簡単な方法はありますか (User.messages
) 。私はたくさん使うと思いますが、単に追加できるので、配列メソッドは必要ありません。User.messages
User.messages_data_set
#..._dataset
.all
同じ (複雑な) クエリが 1 つのアクション内で複数回実行される場合があることに気付きました。Active Record クエリ キャッシュのようなものはありますか? (
identity_map
これらのケースではうまくいかないようです)。to_sql
データセットが生成する生の SQL を取得するために呼び出すことができるものはありますか?
mysql - Mysql / Ruby Sequelは最後にID値を挿入しますが、どの方法ですか?
Rubyの続編を使用してlast_insert_id()を取得したいだけです。
SELECTクエリはlast_idを返す必要がありますが、.runはそれを返しません。代わりにどの方法を使用すればよいですか?
解決策: (JoshLindseyに感謝します)
ruby-on-rails - Sequel::Model の検証はインスタンス メソッドのみですか?
before_validation
ActiveRecord の最新バージョンでは、単純な宣言を使用して任意の数のハンドラーを定義できます。
Sequel を使用すると、これを行うことができる唯一の方法は、古い ActiveRecord メソッドに似ているように見えます。
簡略化された宣言を追加するプラグインはありますか、それともそのままですか? Sequel のドキュメントには、あまり明確な図が描かれていません。MyModel.before_validation
クラスメソッドが定義されていません。
更新:以下の回答が示すように、この動作は既定では存在しません。これを修正する Sequel::Model プラグインを作成しました、sequel_simple_callbacksと呼ばれます