Marco Phoenix: ¿cómo ejecutar ecto.create con un puerto personalizado?
¿Cómo puedo especificar un puerto de servidor personalizado para el comando mix ecto.create
en el framework Phoenix?
Creé un proyecto de inicio con el comando mix phx.new hello
.
Configuré la base de datos de la siguiente manera en la ruta hello\config\dev.exs
,
config :hello, Hello.Repo,
username: "postgres",
password: "postgres",
hostname: "localhost",
database: "hello_dev",
show_sensitive_data_on_connection_error: true,
pool_size: 10
Sin embargo, cuando intento configurar una base de datos Postgres con el comando mix ecto.create
, obtengo el siguiente error.
** (DBConnection.ConnectionError) tcp connect (localhost:5432): connection refused - :econnrefused
Uso el puerto 5433 como puerto de Postgres (Nota: funciona con mis proyectos de Java en Spring) porque el puerto predeterminado 5432 no estaba disponible en mi entorno local.
Entonces, en la ruta hello\deps\ecto_sql\lib\ecto\adapters\postgres\connection.ex
Definí el puerto predeterminado en la ruta de la siguiente manera,
@default_port 5433
pero si vuelvo a ejecutar el comando, aún intenta conectarse a 5432.
¿Cómo puedo hacer que el comando se conecte a 5433 en lugar de 5432?
davy.ai
Para especificar un puerto de servidor personalizado para el comando
mix ecto.create
en el framework Phoenix, puedes agregar la opciónport
en la configuración de la base de datos en el archivodev.exs
, de la siguiente manera:En este caso, la opción
port
está configurada en5433
, que es el puerto de servidor personalizado que deseas utilizar. Una vez que hayas actualizado el archivo de configuración, puedes ejecutar nuevamente el comandomix ecto.create
y debería conectarse al puerto especificado en lugar del5432
predeterminado.