나는 시도했다 :
$ alias psql="docker exec -ti pg-hello-phoenix sh -c 'exec psql -h localhost -p 5432 -U postgres'"
$ mix ecto.create
하지만 :
** (RuntimeError)
psql
경로에서 실행 파일 을 찾을 수 없습니다. ecto 명령 lib / ecto / adapters / postgres.ex : 106 : Ecto.Adapters.Postgres.run_with_psql / 2 lib / ecto / adapters / postgres를 실행하기 전에 사용할 수 있는지 확인하십시오. 예 : 83 : Ecto.Adapters.Postgres.storage_up / 1 lib / mix / tasks / ecto.create.ex : 34 : Mix.Tasks.Ecto.Create.run/1(elixir) lib / enum의 익명 fn / 2. 예 : 604 : Enum. "-each / 2-lists ^ foreach / 1-0-"/ 2 (elixir) lib / enum.ex : 604 : Enum.each / 2 (혼합) lib / mix / cli.ex : 58 : Mix.CLI.run_task / 2 (elixir) lib / code.ex : 363 : Code.require_file / 2
또한 심볼릭 링크를 만들려고했습니다 /usr/local/bin/psql
.
#!/usr/bin/env bash
docker exec -ti pg-hello-phoenix sh -c "exec psql -h localhost -p 5432 -U postgres $@"
그리고:
$ sudo chmod +x /usr/local/bin/psql
검사:
$ which psql
/usr/local/bin/psql
$ psql --version
psql (PostgreSQL) 9.5.1
다시 뛰어:
$ mix ecto.create
** (Mix) The database for HelloPhoenix.Repo couldn't be created, reason given: cannot enable tty mode on non tty input
.
PostgreSQL이 포함 된 컨테이너가 시작됩니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
013464d7227e postgres "/docker-entrypoint.s" 47 minutes ago Up 47 minutes 5432/tcp pg-hello-phoenix
나에게 나는 다음을 수행했습니다.
sudo docker exec -it postgres-db bash
대화 형 셸을 얻은 후
psql -h localhost -p 5432 -U postgres
그런 다음 DB를 수동으로 만듭니다.
CREATE DATABASE cars_dev;
마지막으로 :
mix ecto.migrate
그 후 모든 것이 잘 작동했습니다 :) 도움이되기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다