Extends the Ecto DSL for easily working with TimescaleDB. Already using Ecto and Postgres? Great, you're all set to start working with time-series data.
- Easy creation of hypertables in Ecto Migrations
- Leverage TimescaleDB hyperfunctions right inside your Ecto queries
- Configure table compression policies
- Make sure your database has Timescale correctly installed
- Create a new Ecto migration
- Call the
create_timescaledb_extension/0
anddrop_timescaledb_extension/0
in your migration
E.g.
defmodule MyApp.Repo.Migrations.SetupTimescale do
use Ecto.Migration
import Timescale.Migration
def up do
create_timescaledb_extension()
end
def down do
drop_timescaledb_extension()
end
end
If available in Hex, the package can be installed
by adding timescale
to your list of dependencies in mix.exs
:
def deps do
[
{:timescale, "~> 0.1.0"}
]
end
There are many ways to install PostgreSQL locally, including Postgres.app
, Docker
, and building locally. Below is how to install through Homebrew
First, install Postgres
$ brew install postgresql
$ sudo chown $(whoami) /usr/local/var/postgres
$ initdb /usrl/local/var/postgres
$ createuser -s postgres
$ createdb
Make Postgres a service that is started automatically
$ brew services start postgresql
Then install TimescaleDB. For more information about installing TimescaleDB on MacOS, see the official documentation.
$ brew tap timescale/tap
$ brew install timescaledb
# Add the following to `/opt/homebrew/var/postgres/postgresql.conf`
shared_preload_libraries = 'timescaledb'