使用 edeliver 部署 phoenix 在迁移时失败
Deploying phoenix with edeliver fails at migrate
当我 运行 mix edeliver migrate production
我得到这个错误:
production node:
user : deploy
host : myIP
path : /home/deploy
response: RPC to 'bot@127.0.0.1' failed: {'EXIT',
{#{'__exception__' => true,
'__struct__' =>
'Elixir.DBConnection.ConnectionError',
message =>
<<"connection not available because of disconnection">>},
[{'Elixir.DBConnection',checkout,2,
[{file,"lib/db_connection.ex"},{line,926}]},
{'Elixir.DBConnection',run,3,
[{file,"lib/db_connection.ex"},{line,742}]},
{'Elixir.DBConnection',run_meter,3,
[{file,"lib/db_connection.ex"},
{line,1133}]},
{'Elixir.DBConnection',prepare_execute,4,
[{file,"lib/db_connection.ex"},{line,584}]},
{'Elixir.Ecto.Adapters.Postgres.Connection',
execute,4,
[{file,
"lib/ecto/adapters/postgres/connection.ex"},
{line,86}]},
{'Elixir.Ecto.Adapters.SQL',sql_call,6,
[{file,"lib/ecto/adapters/sql.ex"},
{line,256}]},
{'Elixir.Ecto.Adapters.SQL','query!',5,
[{file,"lib/ecto/adapters/sql.ex"},
{line,198}]},
{'Elixir.Ecto.Adapters.Postgres',
'-execute_ddl/3-fun-0-',4,
[{file,"lib/ecto/adapters/postgres.ex"},
{line,85}]}]}}
我做了 remote_console 和 Application.get_all_env(:example)
检查数据库详细信息,它们是正确的。我正在同一台服务器和数据库上部署另一个 phoenix 应用程序。
我尝试在两个应用程序上更改池大小,但没有帮助。
我想我可能犯了一些小错误,但由于有线错误无法查明。
好吧,一年多过去了,在使用 edeliver/distilery 进行部署时,我仍然 运行 陷入这些模糊的消息迁移错误。
我找到了启用远程数据库访问和修改 dev.exs
配置以临时使用生产数据库的最佳解决方案。然后 运行 mix ecto.migrate
显示实际错误,在我当前的情况下是:
permission denied to create extension "pg_trgm"
当我 运行 mix edeliver migrate production
我得到这个错误:
production node:
user : deploy
host : myIP
path : /home/deploy
response: RPC to 'bot@127.0.0.1' failed: {'EXIT',
{#{'__exception__' => true,
'__struct__' =>
'Elixir.DBConnection.ConnectionError',
message =>
<<"connection not available because of disconnection">>},
[{'Elixir.DBConnection',checkout,2,
[{file,"lib/db_connection.ex"},{line,926}]},
{'Elixir.DBConnection',run,3,
[{file,"lib/db_connection.ex"},{line,742}]},
{'Elixir.DBConnection',run_meter,3,
[{file,"lib/db_connection.ex"},
{line,1133}]},
{'Elixir.DBConnection',prepare_execute,4,
[{file,"lib/db_connection.ex"},{line,584}]},
{'Elixir.Ecto.Adapters.Postgres.Connection',
execute,4,
[{file,
"lib/ecto/adapters/postgres/connection.ex"},
{line,86}]},
{'Elixir.Ecto.Adapters.SQL',sql_call,6,
[{file,"lib/ecto/adapters/sql.ex"},
{line,256}]},
{'Elixir.Ecto.Adapters.SQL','query!',5,
[{file,"lib/ecto/adapters/sql.ex"},
{line,198}]},
{'Elixir.Ecto.Adapters.Postgres',
'-execute_ddl/3-fun-0-',4,
[{file,"lib/ecto/adapters/postgres.ex"},
{line,85}]}]}}
我做了 remote_console 和 Application.get_all_env(:example)
检查数据库详细信息,它们是正确的。我正在同一台服务器和数据库上部署另一个 phoenix 应用程序。
我尝试在两个应用程序上更改池大小,但没有帮助。
我想我可能犯了一些小错误,但由于有线错误无法查明。
好吧,一年多过去了,在使用 edeliver/distilery 进行部署时,我仍然 运行 陷入这些模糊的消息迁移错误。
我找到了启用远程数据库访问和修改 dev.exs
配置以临时使用生产数据库的最佳解决方案。然后 运行 mix ecto.migrate
显示实际错误,在我当前的情况下是:
permission denied to create extension "pg_trgm"