おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

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 にアクセスしてちゃんと動くことを確認しました。