Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> |
||
|---|---|---|
| .github | ||
| 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 |