From be8d3be4b34ee23c959f6e333b9d8aceabcc6d1c Mon Sep 17 00:00:00 2001 From: shibao Date: Mon, 7 Feb 2022 19:28:40 -0500 Subject: [PATCH] move more configs to runtime --- config/dev.exs | 3 --- config/prod.exs | 4 ---- config/runtime.exs | 52 ++++++++++++++++++++++++++-------------------- config/test.exs | 3 --- 4 files changed, 29 insertions(+), 33 deletions(-) diff --git a/config/dev.exs b/config/dev.exs index d734ded1..56b11fd8 100644 --- a/config/dev.exs +++ b/config/dev.exs @@ -2,9 +2,6 @@ import Config # Configure your database config :cannery, Cannery.Repo, - url: - System.get_env("DATABASE_URL") || - "ecto://postgres:postgres@localhost/cannery_dev", show_sensitive_data_on_connection_error: true, pool_size: 10 diff --git a/config/prod.exs b/config/prod.exs index f1a59b3c..d5b270be 100644 --- a/config/prod.exs +++ b/config/prod.exs @@ -11,10 +11,6 @@ import Config # before starting your production server. config :cannery, CanneryWeb.Endpoint, cache_static_manifest: "priv/static/cache_manifest.json" -config :cannery, Cannery.Repo, - url: "ecto://postgres:postgres@localhost/cannery", - pool_size: 10 - config :cannery, Cannery.Application, automigrate: true # Do not print debug messages in production diff --git a/config/runtime.exs b/config/runtime.exs index 4265ca4a..798ee937 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -12,19 +12,39 @@ if System.get_env("PHX_SERVER") && System.get_env("RELEASE_NAME") do config :cannery, CanneryWeb.Endpoint, server: true end -if config_env() == :prod do - database_url = +maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: [] + +database_url = + if config_env() == :test do + System.get_env("TEST_DATABASE_URL") || + "ecto://postgres:postgres@localhost/cannery_test#{System.get_env("MIX_TEST_PARTITION")}" + else System.get_env("DATABASE_URL") || "ecto://postgres:postgres@cannery-db/cannery" + end - maybe_ipv6 = if System.get_env("ECTO_IPV6"), do: [:inet6], else: [] +config :cannery, Cannery.Repo, + # ssl: true, + url: database_url, + pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), + socket_options: maybe_ipv6 - config :cannery, Cannery.Repo, - # ssl: true, - url: database_url, - pool_size: String.to_integer(System.get_env("POOL_SIZE") || "10"), - socket_options: maybe_ipv6 +host = System.get_env("HOST") || "localhost" +config :cannery, CanneryWeb.Endpoint, + url: [scheme: "https", host: host, port: 443], + http: [ + # Enable IPv6 and bind on all interfaces. + # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access. + # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html + # for details about using IPv6 vs IPv4 and loopback vs public addresses. + ip: {0, 0, 0, 0, 0, 0, 0, 0}, + port: String.to_integer(System.get_env("PORT") || "4000") + ], + server: true, + registration: System.get_env("REGISTRATION") || "invite" + +if config_env() == :prod do # The secret key base is used to sign/encrypt cookies and other secrets. # A default value is used in config/dev.exs and config/test.exs but you # want to use a different value for prod and you most likely don't want @@ -37,21 +57,7 @@ if config_env() == :prod do You can generate one by calling: mix phx.gen.secret """ - host = System.get_env("HOST") || "localhost" - - config :cannery, CanneryWeb.Endpoint, - url: [scheme: "https", host: host, port: 443], - http: [ - # Enable IPv6 and bind on all interfaces. - # Set it to {0, 0, 0, 0, 0, 0, 0, 1} for local network only access. - # See the documentation on https://hexdocs.pm/plug_cowboy/Plug.Cowboy.html - # for details about using IPv6 vs IPv4 and loopback vs public addresses. - ip: {0, 0, 0, 0, 0, 0, 0, 0}, - port: String.to_integer(System.get_env("PORT") || "4000") - ], - secret_key_base: secret_key_base, - server: true, - registration: System.get_env("REGISTRATION") || "invite" + config :cannery, CanneryWeb.Endpoint, secret_key_base: secret_key_base # ## Using releases # diff --git a/config/test.exs b/config/test.exs index 1aea720a..24fae83e 100644 --- a/config/test.exs +++ b/config/test.exs @@ -9,9 +9,6 @@ config :bcrypt_elixir, :log_rounds, 1 # to provide built-in test partitioning in CI environment. # Run `mix help test` for more information. config :cannery, Cannery.Repo, - url: - System.get_env("TEST_DATABASE_URL") || - "ecto://postgres:postgres@localhost/cannery_test#{System.get_env("MIX_TEST_PARTITION")}", pool: Ecto.Adapters.SQL.Sandbox, pool_size: 10