Packages
ecto
0.2.2
3.14.1
3.14.0
3.13.6
3.13.5
3.13.4
3.13.3
3.13.2
3.13.1
3.13.0
3.12.6
3.12.5
3.12.4
3.12.3
3.12.2
3.12.1
3.12.0
3.11.2
3.11.1
3.11.0
3.10.3
3.10.2
3.10.1
3.10.0
3.9.6
3.9.5
3.9.4
3.9.3
3.9.2
3.9.1
3.9.0
3.8.4
3.8.3
3.8.2
3.8.1
3.8.0
3.7.2
3.7.1
3.7.0
3.6.2
3.6.1
3.6.0
3.5.8
3.5.7
3.5.6
3.5.5
3.5.4
3.5.3
3.5.2
3.5.1
3.5.0
3.5.0-rc.1
3.5.0-rc.0
3.4.6
3.4.5
3.4.4
3.4.3
3.4.2
3.4.1
3.4.0
3.3.4
3.3.3
3.3.2
3.3.1
3.3.0
3.2.5
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
3.1.7
3.1.6
3.1.5
3.1.4
3.1.3
3.1.2
3.1.1
3.1.0
3.0.9
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
3.0.0-rc.1
3.0.0-rc.0
2.2.12
2.2.11
2.2.10
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.2.0-rc.1
2.2.0-rc.0
2.1.6
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.1.0-rc.5
2.1.0-rc.4
2.1.0-rc.3
2.1.0-rc.2
2.1.0-rc.1
2.1.0-rc.0
2.0.6
2.0.5
2.0.4
2.0.3
2.0.2
2.0.1
2.0.0
2.0.0-rc.6
2.0.0-rc.5
2.0.0-rc.4
2.0.0-rc.3
2.0.0-rc.2
2.0.0-rc.1
2.0.0-rc.0
2.0.0-beta.2
2.0.0-beta.1
2.0.0-beta.0
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.16.0
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.1
0.13.0
0.12.1
0.12.0
0.12.0-rc
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.0
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.0
0.5.1
0.5.0
0.4.0
0.3.0
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.0
A toolkit for data mapping and language integrated query for Elixir
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/ecto.gen.repo.ex
defmodule Mix.Tasks.Ecto.Gen.Repo do
use Mix.Task
import Mix.Tasks.Ecto
import Mix.Generator
@shortdoc "Generates a new repository"
@moduledoc """
Generates a new repository.
The repository will be placed in the `lib` directory.
## Examples
mix ecto.gen.repo Repo
"""
def run(args) do
no_umbrella!("ecto.gen.repo")
{repo, _} = parse_repo(args)
config = Mix.Project.config
underscored = Mix.Utils.underscore(inspect(repo))
base = Path.basename(underscored)
file = Path.join("lib", underscored) <> ".ex"
app = config[:app] || :YOUR_APP_NAME
create_directory Path.dirname(file)
create_file file, repo_template(mod: repo, app: app, base: base)
open?(file)
unless config[:build_per_environment] do
Mix.shell.info "We have generated a repo that uses a different database per environment. " <>
"So don't forget to set [build_per_environment: true] in your mix.exs file.\n"
end
Mix.shell.info """
Don't forget to add your new repo to your supervision tree as:
worker(#{inspect repo}, [])
"""
end
embed_template :repo, """
defmodule <%= inspect @mod %> do
use Ecto.Repo, adapter: Ecto.Adapters.Postgres, env: Mix.env
@doc "Adapter configuration"
def conf(env), do: parse_url url(env)
@doc "The URL to reach the database."
defp url(:dev) do
"ecto://user:pass@localhost/<%= @app %>_<%= @base %>_dev"
end
defp url(:test) do
"ecto://user:pass@localhost/<%= @app %>_<%= @base %>_test?size=1&max_overflow=0"
end
defp url(:prod) do
"ecto://user:pass@localhost/<%= @app %>_<%= @base %>_prod"
end
@doc "The priv directory to load migrations and metadata."
def priv do
app_dir(<%= inspect @app %>, "priv/<%= @base %>")
end
end
"""
end