Phoenixを1.0.3にバージョンアップ
ブログには書いていませんが、kaeru_phoenixのPhoenixのバージョンを1.0.0にあげたりしていました。
気づいてみたらPhoenixの最新バージョンが1.0.3になっていたのでバージョンアップしようと思ったのですが、前回の手順を忘れていたのでメモ代わりに書いておきます。
1.Phoenixのアップグレード
まずはPhoenix自体のバージョンを上げます。ドキュメントのInstallationの通りにやってみます。
$ mix archive.install https://github.com/phoenixframework/phoenix/releases/tag/v1.0.3/phoenix_new-1.0.3.ez
Found existing archive(s): phoenix_new-1.0.0.ez.
Are you sure you want to replace them? [Yn] Y
* creating /Users/tsukasa/.mix/archives/phoenix_new-1.0.3.ez
** (MatchError) no match of right hand side value: {:error, :bad_directory}
(mix) lib/mix/tasks/archive.install.ex:88: Mix.Tasks.Archive.Install.install_archive/2
(mix) lib/mix/cli.ex:55: Mix.CLI.run_task/2
(elixir) lib/code.ex:363: Code.require_file/2
なんかエラーが出ました。ezファイルをローカルにダウンロードしてからインストールしなおしてみます。
$ mix archive.uninstall phoenix_new-1.0.3.ez
一度アンインストールしてから
$ wget https://github.com/phoenixframework/phoenix/releases/download/v1.0.3/phoenix_new-1.0.3.ez
$ mix archive.install ./phoenix_new-1.0.3.ez
インストールしました。
$ mix archive
* hex.ez
* phoenix_new-1.0.3.ez
Archives installed at: /Users/tsukasa/.mix/archives
大丈夫みたいです。
2.アプリに新バージョンを適用
kaeru_phoenixというPhoenixアプリがあって、こちらは1.0.0で動いていますが、これを1.0.3にあげてみます。
kaeru_phoenixの親ディレクトリで以下を実行します。ファイルを上書きするかどうか聞かれますが、gitで管理しているのでまずはすべて上書きしちゃいます。
$ ls
phoenix_kaeru
$ mix phoenix.new kaeru_phoenix --database=mysql
* creating kaeru_phoenix/config/config.exs
kaeru_phoenix/config/config.exs already exists, overwrite? [Yn]
* creating kaeru_phoenix/config/dev.exs
...(省略)
* creating kaeru_phoenix/web/views/page_view.ex
kaeru_phoenix/web/views/page_view.ex already exists, overwrite? [Yn]
Fetch and install dependencies? [Yn]
* running npm install && node node_modules/brunch/bin/brunch build
* running mix deps.get
We are all set! Run your Phoenix application:
$ cd kaeru_phoenix
$ mix ecto.create
$ mix phoenix.server
You can also run your app inside IEx (Interactive Elixir) as:
$ iex -S mix phoenix.server
何が変わったのか見てみます。
git status -s
M .gitignore
M README.md
M brunch-config.js
M config/config.exs
M config/dev.exs
M config/test.exs
M lib/kaeru_phoenix/endpoint.ex
M mix.exs
M mix.lock
M test/support/model_case.ex
M web/router.ex
M web/static/js/socket.js
M web/web.ex
?? config/dev.secret.exs
kaeru_phoenixで変更しているものは元に戻します。特に手で修正しなくちゃいけないものはなくて、git checkoutで戻すか変更をそのまま使うかのどちらかでした。
$ git status -s
M brunch-config.js
M config/config.exs
M config/test.exs
M lib/kaeru_phoenix/endpoint.ex
M mix.exs
M mix.lock
M test/support/model_case.ex
M web/static/js/socket.js
M web/web.ex
これらをコミットしました。
Phoenixを起動してみます。
$ mix phoenix.server
http://localhost:4000 にアクセスしてちゃんと動くことを確認しました。