无法混合 ecto.create。多个错误

Unable to mix ecto.create. Multiple errors

尝试 运行 mix ecto.create 时出现以下错误:

  1. .Repo couldn't be created: tcp connect: connection refused - :econnrefused
  2. .Repo couldn't be created: FATAL (invalid_authorization_specification): role "postgres" does not exist
  3. .Repo couldn't be created: FATAL (invalid_authorization_specification): role "postgres" is not permitted to log in

为了正确设置 Phoenix,Postgres 必须满足哪些条件?

为了运行mix ecto.create你需要一系列的条件:

  1. Postgres 必须启动并且 运行ning。

  2. Postgres 必须有一个用户 postgres,密码为 postgres

  3. postgres 用户必须同时拥有 LOGINCREATEDB.[=18= 的权限]

例如,我在本地安装了 Postgres 运行ning,但缺少 postgres 用户。

所以在 PSQL 内我不得不使用以下命令:

# CREATE ROLE postgres LOGIN CREATEDB PASSWORD 'postgres';

然后成功了。

感谢Wendy Smoak

  1. 启动您的 postgres:(假设您使用的是 mac)

    pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log 开始

然后您可以更改 cofig/dev.exs 底部的数据库配置,以使用您的帐户和能够创建数据库的角色。