ISN

Build Status

ISN adds a Postgrex.Extension and Ecto.Type definitions for the datatypes defined in the isn PostgreSQL module.

Usage

Ecto migrations

defmodule MyApp.Repo.Migrations.CreateBook do
use Ecto.Migration
def change do
create table(:books) do
add :isbn, :isbn13
# other fields
end
end
end

Ecto Models

defmodule MyApp.Book do
use MyApp.Web, :model
schema "books" do
field :isbn, ISN.ISBN13
# other fields
end
end

Installation

Add the package to your Mixfile

defp deps do
[{:isn, "~> 1.0"}]
end

Add the isn extension to your database

mix do isn.gen.migration, ecto.migrate

Register the postgrex extension in your Repo config

config :books, MyApp.Repo,
adapter: Ecto.Adapters.Postgres,
extensions: [{ISN, []}]

Defined types

ISN adds the following ecto and corresponding postgrex types:

Ecto.TypePostgrex type
ISN.ISBN:isbn
ISN.ISBN13:isbn13
ISN.ISMN:ismn
ISN.ISMN13:ismn13
ISN.ISSN:issn
ISN.ISSN13:issn13
ISN.EAN13:ean13
ISN.UPC:upc