2016年9月28日水曜日

「Phoenix」フレームワークでMySQL

Phoenix」フレームワークでMySQLです。mariaex というモジュールを利用するらしい。名前だけ見ると、MariaDB用かなと思ってしまいます。

$ mix phoenix.new hello_phoenix --database mysql
mix.exs
  defp deps do
    [{:phoenix, "~> 1.2.0"},
     {:phoenix_pubsub, "~> 1.0"},
     {:phoenix_ecto, "~> 3.0"},
     {:mariaex, ">= 0.0.0"},
     {:phoenix_html, "~> 2.6"},
     {:phoenix_live_reload, "~> 1.0", only: :dev},
     {:gettext, "~> 0.11"},
     {:cowboy, "~> 1.0"}]
  end
/config/dev.exs
# Configure your database
config :hello_phoenix, HelloPhoenix.Repo,
  adapter: Ecto.Adapters.MySQL,
  username: "root",
  password: "password",
  database: "hello_phoenix_dev",
  hostname: "localhost",
  pool_size: 10

参考サイト
Using MySQL(Phoenix)

2016年9月27日火曜日

Elixirのリリースバージョン管理「Exrm」

Elixirのリリースバージョン管理「Exrm」 組み込んでみましたが、うまくいかずに挫折。だましだまし進めてきましたが、Elixirを基本から勉強し直したほうが良いのかなと思ったりしています。



参考サイト
Exrm Releases(Phoenix)
exrm

2016年9月26日月曜日

「Phoenix」フレームワークをHerokuにデプロイ

Phoenix」フレームワークをHerokuにデプロイです。絶対に躓くと思っていたのですが、すんなりデプロイできてしまいました。自分が怖い(笑)。

環境変数は、System.get_env で取得することになるので、環境が変わっても、設定の変更は最小限で済みそうです。

/config/prod.exs
use Mix.Config

config :hello_phoenix, HelloPhoenix.Endpoint,
  http: [port: {:system, "PORT"}],
  url: [scheme: "https", host: "talkativepg-phoenix.herokuapp.com", port: 443],
  force_ssl: [rewrite_on: [:x_forwarded_proto]],
  cache_static_manifest: "priv/static/manifest.json",
  secret_key_base: System.get_env("SECRET_KEY_BASE")

# Do not print debug messages in production
config :logger, level: :info

# Configure your database
config :hello_phoenix, HelloPhoenix.Repo,
  adapter: Ecto.Adapters.Postgres,
  url: System.get_env("DATABASE_URL"),
  pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"),
  ssl: true
実際に設定してみたサイトがこちら

参考サイト
Heroku(Phoenix)