Phoenix のUp to RunにてMix ecto.createのerror解決方法

## mix ecto.create で急にerrorがで始めた時の解決方法

## 対象者
2018.10.30近辺でPhoenixのチュートリアルにて学習開始し始めた初学者向け

## なぜ書くのか？
Phoenixの公式ドキュメントと、フレームワークの構成が変更中の差分が発生している時に起こり得る初学者が辛い時期の差分解決としてのメモ
* というか、自分のため。
* ちなみに、mix phx.serverでエラーがでる人の解決方法は[こちら:Phoenix 最初の第一歩 Mix phx.serverでerrorの解決方法](https://qiita.com/Yoosuke/items/91ef4ce0ba8cf6dcb2a9)に記載してます。

## 事件は再び起きた！
```
mix ecto.create
```
を打つと、次のエラーが！！！

```
Compiling 13 files (.ex)
warning: retrieving the :adapter from config files for ElixirSc.Repo is deprecated.
Instead pass the adapter configuration when defining the module:

    defmodule ElixirSc.Repo do
      use Ecto.Repo,
        otp_app: :hello,
        adapter: Ecto.Adapters.Postgres

  lib/ecto/repo/supervisor.ex:100: Ecto.Repo.Supervisor.deprecated_adapter/3
  lib/ecto/repo/supervisor.ex:64: Ecto.Repo.Supervisor.compile_config/2
  lib/elixir_sc/repo.ex:2: (module)
  (elixir) src/elixir_compiler.erl:71: :elixir_compiler.dispatch/4
  (elixir) src/elixir_compiler.erl:68: :elixir_compiler.compile/3
  (elixir) src/elixir_module.erl:281: :elixir_module.eval_form/6
  (elixir) src/elixir_module.erl:79: :elixir_module.compile/5
  (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
  (elixir) src/elixir.erl:265: :elixir.eval_forms/4
  (elixir) src/elixir_compiler.erl:49: :elixir_compiler.eval_forms/3
  (elixir) src/elixir_lexical.erl:17: :elixir_lexical.run/2
  (elixir) src/elixir_compiler.erl:23: :elixir_compiler.quoted/2
  (elixir) lib/kernel/parallel_compiler.ex:206: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6


== Compilation error in file lib/elixir_sc/repo.ex ==
** (ArgumentError) adapter Ecto.Adapters.Postgres was not compiled, ensure it is correct and it is included as a project dependency
    lib/ecto/repo/supervisor.ex:71: Ecto.Repo.Supervisor.compile_config/2
    lib/elixir_sc/repo.ex:2: (module)
    (stdlib) erl_eval.erl:680: :erl_eval.do_apply/6
    (elixir) lib/kernel/parallel_compiler.ex:206: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/6
```
で解決方法は以下です。
※下記の１.などの数字は打たない。　順番を示している物です。

```
1. mix deps.clean --all
2. rm -rf mix.lock
3. mix.exsを書き換える。書き換えは以下参照
```

mix.exsの書き換え
befor

```
defp deps do
    [
      {:phoenix, "~> 1.3.4"},
      {:phoenix_pubsub, "~> 1.0"},
      {:phoenix_ecto, ">= 3.2.},
      {:postgrex, ">= 0.0.0"},
      {:phoenix_html, "~> 2.10"},
      {:phoenix_live_reload, "~> 1.0", only: :dev},
      {:gettext, "~> 0.11"},
      {:cowboy, "~> 1.0"}
    ]
  end
```

After
※　今回は、```{:phoenix_ecto, ">= 3.2}```のところを次のように書き換えるのが目的ですが、```{:phoenix_ecto, ">= 3.2.0 and < 3.5.0"}```ついでに、```phx.server```でerrorになる原因の箇所も追記しておく```{:plug_cowboy, "~> 1.0"}```

```
defp deps do
    [
      {:phoenix, "~> 1.3.4"},
      {:phoenix_pubsub, "~> 1.0"},
      {:phoenix_ecto, ">= 3.2.0 and < 3.5.0"},
      {:postgrex, ">= 0.0.0"},
      {:phoenix_html, "~> 2.10"},
      {:phoenix_live_reload, "~> 1.0", only: :dev},
      {:gettext, "~> 0.11"},
      {:cowboy, "~> 1.0"},
      {:plug_cowboy, "~> 1.0"}
    ]
  end
```

上記の書き換えが終わったら、次のコマンドを打つと、```mix ecto.create```で無事に成功し、```mix phx.server```で無事に立ち上がる。

```
1. mix deps.get
2. mix ecto.create
3. mix phx.server
```
Elixir の勉強会を毎週火曜日10時または、11時から13時までやってます。基本はオンラインで、月に１回
オフラインで会ってやってます。興味ある方は声かけてください。

ちなみに、最近覚えたてのReactで[YOSUKENAKAO.me](https://yosukenakao.me)というサイトを立ち上げました。
バック側の仕組みをElixirで作りたいと奮闘してますw