Skip to content

About

Cursor-based pagination for Ecto.

Topics

Resources

Stars

14 stars

Watchers

12 watching

Forks

Latest commit

 

History

83 Commits

Folders and files

Repository files navigation

Ecto.Paging

Deps Status Build Status Coverage Status

This module provides a easy way to apply cursor-based pagination to your Ecto Queries.

Usage:

  1. Add macro to your repo

    defmodule MyRepo do
       use Ecto.Repo, otp_app: :my_app
       use Ecto.Paging.Repo # This string adds `paginate/2` and `page/3` methods.
     end
  2. Paginate!

    query = from p in Ecto.Paging.Schema
    
    {res, next_paging} = query
    |> Ecto.Paging.TestRepo.page(%Ecto.Paging{limit: 150})

Limitations:

  • Right now it works only with schemas that have :inserted_at field with auto-generated value.
  • You need to be careful with order-by's in your queries, since this feature is not tested yet.
  • It doesn't construct has_more and size counts in paginate struct (TODO: add this helpers).
  • When both starting_after and ending_before is set, only starting_after is used.

Installation

  1. Add ecto_paging to your list of dependencies in mix.exs:
```elixir
def deps do
  [{:ecto_paging, "~> 0.8.4"}]
end
```
  1. Ensure ecto_paging is started before your application:

    def application do
      [applications: [:ecto_paging]]
    end

About

Cursor-based pagination for Ecto.

Topics

Resources

Stars

14 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages