私はこのコードを動作させることに非常に近いと知っていますが、Sequel :: Model paginate/each_pageはデータの最初のページのみを返します
私はsequel :: modelを使って抽象化した一連のteradataとoracleテーブルを持っています。 Iveはデータベースにページ番号拡張をロードしました。私はデータセットを返すことができますが、私が何をしても、最初のページ以外のものを私に与えることはできません。
Iveがテーブルをどのように抽象化したかの例を示します。ここで
module MyDB
class MyTable< Sequel::Model(tera_db["#{$env[:my_db]}__my_table".to_sym])
@factory_name = :my_factory
set_primary_key [:my_primary_key]
@typecast_on_assignment = false
end
end
は、アイブ氏は、データセット内の87675件のレコードがありますeach_page
MyDB::MyTable.order(:my_primary_key).each_page(1000) do |page|
p page.current_page_record_count
p page.count
p page.first
end
の周りにいくつかのテストコードを実装する方法です。このループからの最後の2回の反復の出力は次のとおり
千
千
値= {:キー1 => 12345:KEY2 => 14.58:KEY3 => 155.44}
千
値= {:キー1 => 12345:KEY2 => 14.58:KEY3 => 155.44}
これで正しいページ数が作成されています。ページングされたレコードの基本的な数は正しいです。しかし、私がページ内の実際の値を取得しようとすると、レコードカウントを含む最初のページからのみレコードが取得されます。
私には何が欠けていますか?
することもできますページネーションを使用すると、大きなデータセットを一度にすべてメモリにロードせずにロールバックできるようになりました。通常のデータセットで.eachを使うだけで、私はそれを行うことができるので、私は実際にページングを使う必要はありません。私はこれがおそらくteradataアダプターの問題であることに同意します。 –