Security patches are only available for the last 5 minor branches, so since we're bumping pretty much everything right now anyway, let's bump this number as well. There is definitely syntax in this library now that's newer than 1.0 anyway (`with` was introduced in 1.2, for instance). |
||
|---|---|---|
| config | ||
| lib | ||
| test | ||
| .formatter.exs | ||
| .gitignore | ||
| .tool-versions | ||
| README.md | ||
| mix.exs | ||
| mix.lock | ||
README.md
ISN
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, read_after_writes: true
# other fields
end
end
Installation
Add the package to your Mixfile
defp deps do
[{:isn, "~> 2.0"}]
end
Add the isn extension to your database
mix do isn.gen.migration, ecto.migrate
Add a lib/postgrex_types.ex file with the following content:
Postgrex.Types.define(MyApp.PostgrexTypes, [ISN], [])
Add the following lines in config.exs:
config :my_app, MyApp.Repo,
types: MyApp.PostgrexTypes
Defined types
ISN adds the following ecto and corresponding postgrex types:
| Ecto.Type | Postgrex 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 |