es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para especificar un puerto de servidor personalizado para el comando mix ecto.create en el framework Phoenix, puedes agregar la opción port en la configuración de la base de datos en el archivo dev.exs, de la siguiente manera:

    config :hello, Hello.Repo,
       username: "postgres",
       password: "postgres",
       hostname: "localhost",
       database: "hello_dev",
       port: 5433,
       show_sensitive_data_on_connection_error: true,
       pool_size: 10
    

    En este caso, la opción port está configurada en 5433, que es el puerto de servidor personalizado que deseas utilizar. Una vez que hayas actualizado el archivo de configuración, puedes ejecutar nuevamente el comando mix ecto.create y debería conectarse al puerto especificado en lugar del 5432 predeterminado.

Comments are closed.