Elixir
ecto

俺のEcto cookbook!!

はじめに

これは自分流の備忘録です

ectoの操作やデータベース操作周りの整理のために記載しています

随時アップデートしていく予定です

コマンド関連

データベース作成実行コマンド

$ mix ecto.create

データベース削除実行コマンド

$ mix ecto.drop

マイグレーションファイル作成実行コマンド

$ mix ecto.gen.migration マイグレーションファイル名

実行後はpriv/repo/migrationsにファイルができる

マイグレーション実行コマンド

$ mix ecto.migrate

priv/repo/migrationsのマイグレーションファイルを実行して、テーブルを作成してくれるコマンド

マイグレーション実行を戻すコマンド

$ mix ecto.rollback

最新のマイグレーション状態から一つ前の状態に戻してくれるコマンド

データベースをdumpするコマンド

mix ecto.dump

データベースの状態がdumpできるコマンド

DB削除からテーブル作成まで全てをやり直すコマンド

$ mix ecto.reset

mix ecto.drop
mix ecto.create
mix ecto.migrate
mix run priv/repo/seeds.exs
まで一気にやってくれるやつ:point_up:

本番運用中は絶対やっちゃいけないコマンド:construction_worker_tone2:

ちなみに...
実はこのmix ecto.resetコマンドはaliasコマンドになっています。
mix.exsファイルを見てみますとそのほかにもmix ecto.setupやmix testなどもaliasとして記述されています。自分で組み合わせのコマンド作るのもいいですね!

mix.exs
  defp aliases do
    [
      "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
      "ecto.reset": ["ecto.drop", "ecto.setup"],
      "test": ["ecto.drop", "ecto.create --quiet", "ecto.migrate", "run priv/repo/seeds.exs", "test"]
    ]
  end