ついつい--database mysql付け忘れてPostgreSQLになってしまったものの、プロジェクトごと作り直すのはなんか違う気がしたので、手で直してみたときの作業録です。
mix.exsを直す
まずmix.exsを修正します。
mix.exs(修正前〜抜粋)
def application do
[mod: {Tutorial, []},
applications: [:phoenix, :phoenix_html, :cowboy, :logger, :gettext,
:phoenix_ecto, :postgrex]]
end
defp deps do
[{:phoenix, "~> 1.1.3"},
{:phoenix_ecto, "~> 2.0"},
{:postgrex, ">= 0.0.0"},
{:phoenix_html, "~> 2.3"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.9"},
{:cowboy, "~> 1.0"}]
end
上記のpostgrexとなっているところをmariaexに直します。
mix.exs(修正後〜抜粋)
def application do
[mod: {Tutorial, []},
applications: [:phoenix, :phoenix_html, :cowboy, :logger, :gettext,
:phoenix_ecto, :mariaex]]
end
defp deps do
[{:phoenix, "~> 1.1.3"},
{:phoenix_ecto, "~> 2.0"},
{:mariaex, ">= 0.0.0"},
{:phoenix_html, "~> 2.3"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:gettext, "~> 0.9"},
{:cowboy, "~> 1.0"}]
end
configファイルの修正
次に、ドライバとか、アカウントとかが記述してあるconfigファイルを修正します。
dev.exsと、prod.secret.exsが対象ですが、どっちも同じ修正なので、dev.exsだけ。
dev.exs(修正前〜抜粋)
config :tutorial, Tutorial.Repo,
adapter: Ecto.Adapters.Postgres,
username: "postgres",
password: "postgres",
database: "tutorial_prod",
pool_size: 20
アカウント周りは必要に応じて変更してください。
dev.exs(修正後〜抜粋)
config :tutorial, Tutorial.Repo,
adapter: Ecto.Adapters.MySQL,
username: "root",
password: "",
database: "tutorial_prod",
pool_size: 20
最後にmix deps.get
以下コマンドを実行してmariaexを追加します。
$ mix deps.get
Running dependency resolution
Dependency resolution completed
mariaex: 0.5.0
* Getting mariaex (Hex package)
Checking package (https://s3.amazonaws.com/s3.hex.pm/tarballs/mariaex-0.5.0.tar)
Fetched package
これでMySQLへの切り替え完了です!
割と簡単に変えられました!