ヽ(´・肉・`)ノログ

How do we fighting without fighting?

Phoenixのtimestampsのカラム名を変更する

Railsで作ったDBへPhoenixで接続するときのtimestampsのカラム名変更方法.

mix ecto.generate で model を作ると以下のような形式になる.このとき timestamps は何も指定しなければ inserted_at と updated_at というカラムを指す. 一方,Railsの timestamp は created_at と updated_at なので,このまま phoenix を動かすとDBには inserted_at というカラムが見つからないというエラーになる.

defmodule MySampleApp.User do
  use FarmnoteAdminConsole.Web, :model

  schema "users" do
    field :name, :string

    timestamps
  end

  # (略)
end

これを回避するには以下のように timestamps へオプションを指定してやればよい.

defmodule MySampleApp.User do
  use FarmnoteAdminConsole.Web, :model

  schema "users" do
    field :name, :string

    timestamps inserted_at: :created_at
  end

  # (略)
end

ecto/schema.ex にドキュメントと実装がある.

このエントリーをはてなブックマークに追加