# 【Elixir】Ecto.dump load でデータのエクスポート、インポートを行う
> Elixir Ecto.dump load でデータのエクスポート、インポートを行う
- Canonical: https://c-a-p-engineer.github.io/elixir-ecto-dump/
- Published: 2023-01-23T09:30:00.000Z
- Modified: 2023-01-23T09:30:00.000Z
- Categories: Elixir
- Tags: Elixir

Ecto.dump load でデータのエクスポート、インポートを行う。

今回使用する2つの機能は以下です。
<a href="https://hexdocs.pm/ecto_sql/3.9.2/Mix.Tasks.Ecto.Dump.html" target="_blank" rel="nofollow noopener">mix ecto.dump — Ecto SQL v3.9.2</a>
<a href="https://hexdocs.pm/ecto_sql/3.9.2/Mix.Tasks.Ecto.Load.html" target="_blank" rel="nofollow noopener">mix ecto.load — Ecto SQL v3.9.2</a>

これを使用することでDBの移行が可能になります。

## Ecto.dump でDBDumpを取得する
以下のコマンドを実行します。
```
mix ecto.dump
```

`priv/repo/structure.sql` にDBDumpが吐かれます。

`ecto.dump` 使用時に PostgreSQL なら `pg_dump` 、MySQL なら `mysqldump` が入ってないとエラーが出ますのでご注意ください。
<a href="https://hexdocs.pm/ecto_sql/3.9.2/Mix.Tasks.Ecto.Dump.html" target="_blank" rel="nofollow noopener">mix ecto.dump — Ecto SQL v3.9.2</a>

## Ecto.load でDBDumpを実行する
以下のコマンドを実行すると `priv/repo/structure.sql` が実行されます。
```
mix ecto.load
```

## 参考
* <a href="https://hexdocs.pm/ecto_sql/3.9.2/Mix.Tasks.Ecto.Dump.html" target="_blank" rel="nofollow noopener">mix ecto.dump — Ecto SQL v3.9.2</a>
* <a href="https://hexdocs.pm/ecto_sql/3.9.2/Mix.Tasks.Ecto.Load.html" target="_blank" rel="nofollow noopener">mix ecto.load — Ecto SQL v3.9.2</a>
