スポンサーリンク

2015年7月28日

[Elixir+Phoenix]Upgrade phoenix.new of mix archive

Goal

mix archiveのphoenix.newをアップグレードする。
before: v0.13.1
after: v0.15.0

Dev-Environment

OS: Windows8.1
Erlang: Eshell V6.4, OTP-Version 17.5
Elixir: v1.0.4
Phoenix Framework: v0.13.1 and v0.15.0

Wait a minute

archiveの方のphoenix.newをアップグレードする。
Rails Tutorial for Phoenixで利用している、
ローカルバージョンはv0.13.1で固定しているので変わりません。
アップグレードは、やりたい方だけ実行して下さい。
何れにせよ、記事が全て書き終われば、
バージョンアップによる変更点は反映していくので・・・
今やらなくても大丈夫です。

Index

VersionUpgrade
|> Upgrade Phoenix of mix archive
|> Extra

Upgrade Phoenix of mix archive

それでは、アップグレードしていきましょう!!
まずは、archive.installで新しいバージョンを指定して上書きできるか試してみます。
>mix archive.install https://github.com/phoenixframework/phoenix/releases/tag/v0.15.0/phoenix_new-0.15.0.ez
Found existing archive(s): phoenix_new-0.13.1.ez.
Are you sure you want to replace them? [Yn] y
* creating .mix/archives/phoenix_new-0.15.0.ez
** (MatchError) no match of right hand side value: {:error, :bad_directory}
    (mix) lib/mix/tasks/archive.install.ex:64: Mix.Tasks.Archive.Install.install_archive/2
    (mix) lib/mix/cli.ex:55: Mix.CLI.run_task/2
    (stdlib) erl_eval.erl:657: :erl_eval.do_apply/6
    (elixir) lib/code.ex:131: Code.eval_string/3
おや、何かエラーが出ましたね。
creating…の文言が出ているのでインストール(アップグレード)はできたようですが・・・
>mix archive
* hex.ez
* phoenix_new-0.15.0.ez
Archives installed at: .../.mix/archives
ふむ、やっぱりインストール(アップグレード)はできてますね。
Phoenixのインストールガイドを見直しました。
問題がでるようだったら、ローカルに.ezファイルをダウンロードしてインストールして下さいとあります。
それに従ってもう一度インストールします。
なので、一度アンインストールします。(念の為)
>mix archive.uninstall phoenix_new-0.15.0.ez

>mix archive
* hex.ez
Archives installed at: .../.mix/archives
以下のリンク先へ行き、Downloadsから”phoenix_new-0.15.0.ez”をダウンロードして下さい。
ダウンロード: Github - phoenixframework/phoenix v0.15.0
ダウンロードしたら適当なディレクトリへ配置。
Description: コマンドプロンプトからパス指定できるならどこでも良い
私の場合、以下のように配置した。
Example: C:\MyWorkSpaces\tools\phoenix_new-0.15.0.ez
>mix archive.install C:\MyWorkSpaces\tools\phoenix_new-0.15.0.ez
Are you sure you want to install archive C:\MyWorkSpaces\tools\phoenix_new-0.15.0.ez? [Yn] y
* creating .mix/archives/phoenix_new-0.15.0.ez
エラーなくインストールできたようです。

Extra

一応、心配なので新しいバージョンのプロジェクトを作成して起動までします。
>mix phoenix.new v_0_15_0_project_sample

We are all set! Run your Phoenix application:

    $ cd v_0_15_0_project_sample
    $ mix ecto.create
    $ mix phoenix.server

You can also run your app inside IEx (Interactive Elixir) as:

    $ iex -S mix phoenix.server
個人的に生成遅くなった気が・・・(気のせい?)
ecto.createの項目が加わってますね。
>cd v_0_15_0_project_sample

>mix ecto.create
コンパイルが流れて・・・
Generated v_0_15_0_project_sample app
The database for V_0_15_0ProjectSample.Repo has been created.

>mix phoenix.server
以下のURLへアクセス。(デフォルトポート使用)
URL: http://localhost:4000
生成から起動まで問題なし!

Speaking to oneself

お疲れ様でした。
アップグレード完了です。
しかし、ネットワーク経由でインストールした場合、
一体何が問題だったんでしょう?
初期インストールの時はエラーは出てなかったと思いますが・・・
まぁ、問題はないみたいなのでいいですけど。
v0.15.0のバージョンは・・・
Channel機能に対しての変更が多いですね。
利用している方は対応大変かもですが、頑張ってください!
(20150728追記)
友人がPhoenix Frameworkのリリースノートを翻訳してくれました。
ハードリカーエンジニア - phoenixframework v0.15.0 リリースノート

Bibliography

人気の投稿