ecto

Eliir Ecto: PostgreSQL大自增长主键的设置

要解决的问题数据库中存储的行数超过了 serial 类型所能容纳的数量, 因此需要采用 bigserial 类型的整数作为主键serial 的取值范围为: 1 到 2147483647bigserial 的取值范围为: 1 到 9223372036854775807完整的 Postgresql 字段的数据类型, 可以参考这里迁移脚本defmodule ElectricPro

Eliir Ecto: 解决UTC时间戳和本地时间8小时时差的问题

Ecto 默认使用的是UTC时间, 它要比中国区的本地时间晚 8 小时.Ecto 的源码 说明了这个问题. 经过查找资料, 我们在 Ecto 文档 中找到了 timestamps 宏的选项 :autogenerate, 它的格式为一个三元组, 分别是模块, 函数, 参数{Module, :function, []}Ecto 的 timestamps 的时间错是自动生成的,

Eliir Ecto: 在Postgresql中插入二进制数据

本文以用一个在数据库中保存图片信息为例, 展示如何向 Postgresql 中插入二进制数据.首先我们要知道 Postgresql 中唯一一种二进制数据的类型为 bytea, 表示字节数组或字节序列. 对应于Oracle和MySQL中的 blob.下面是一个示例defmodule Bytea.Model.Test doimport Ecto.Changesetuse Ect

Eliir Ecto: 多数据库跨库查询

这篇文章说明了如何在Elixir应用程序中使用多个Repo. Repo可以是不同的数据库, 运行在不同的操作系统上. 本文以一个收藏夹的应用来展示如何在Elixir应用程序中使用多个库进行跨库操作.为什么需要多个库我们已经开发了一套系统, 但是这套系统是构建在老的系统上的, 现在我们需要对这套写进行扩展, 增加一些新的功能, 并且需要采用新的技术, 老的系统有一些我们构建这

Eliir Ecto: 复合(多列)唯一约束的Changeset校验

我们有这么一张表的迁移脚本 20160718132517_create_vehicle_change_owner_table.exs 描述了机动车过户的记录defmodule ElectricProto.Repo.Migrations.CreateVehicleChangeOwnerTable douse Ecto.Migrationdef up docreate tabl

Eliir Ecto: 使用Whatwasit追踪模型的变更和版本化

Whatwasit 是一个跟踪Ecto模型变化的一个包, 用于审计和版本化. 审计在某些情况下是我们非常需要的, 比如我们需要知道谁在系统中修改了什么, 可以形成审计日志备后期进行审查.注意: Whatwasit(读作: What was it) 需要Elixir 1.2的支持, 所以要使用 Whatwasit 请首先升级到Elixir 1.2以上跟踪变化使用 Whatw