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.

Error de Postgres al crear una nueva tabla utilizando el comando de migración.

Estoy tratando de configurar un proyecto de NodeJs en mi sistema. Este proyecto tiene diferentes ambientes de base de datos para local y desarrollo, para lo cual se agregan el nombre de usuario, contraseña y otras credenciales en knex.js. He instalado Postgres en mi local (y he utilizado el mismo nombre de usuario y contraseña que el de mi sistema). Necesito crear una nueva tabla, para lo cual ejecuté este comando para crear el archivo de migración:

knex migrate:make 'test' --env local --knexfile db/knex.js

Se crea un archivo. Luego en este archivo agregué el código para crear la tabla:

exports.up = function (knex, Promise) {
    return knex.schema
        .createTable('oxygen', table => {
            table.increments('id').primary();
            table.string('name').notNull();
        });
};

exports.down = function (knex, Promise) {
    return knex.schema.dropTable('oxygen');
};

Ahora, para crear la tabla en la base de datos, ejecuté este comando de migración:

knex migrate:latest --env local --knexfile db/knex.js

Pero estoy obteniendo este error:

Working directory changed to ~/backend/db
Using environment: local
password authentication failed for user "postgres"
error: password authentication failed for user "postgres"
    at Connection.parseE (/home/bhavya/backend/node_modules/pg/lib/connection.js:614:13)
    at Connection.parseMessage (/home/bhavya/backend/node_modules/pg/lib/connection.js:413:19)
    at Socket.<anonymous> (/home/bhavya/backend/node_modules/pg/lib/connection.js:129:22)
    at Socket.emit (events.js:315:20)
    at addChunk (_stream_readable.js:295:12)
    at readableAddChunk (_stream_readable.js:271:9)
    at Socket.Readable.push (_stream_readable.js:212:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:186:23)

El archivo knex.js incluye la siguiente parte del código para conectarse con la base de datos local:

local: {
client: 'pg',
useNullAsDefault: true,
migrations: {
directory: './../db/migrations'
},
seeds: {
directory: './../db/seeds'
},
connection: {
host: '127.0.0.1',
user: 'postgres',
password: 'postgres',
database: 'backend'
}
},

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que la autenticación de contraseña ha fallado al intentar conectarse a la base de datos local utilizando el nombre de usuario y la contraseña especificados en el archivo de configuración de knex.js.

    Una posible solución podría ser verificar si la contraseña especificada es correcta y asegurarse de que PostgreSQL esté en ejecución en localhost con el número de puerto correcto.

    Otra solución podría ser intentar utilizar un usuario o contraseña diferente para conectarse a la base de datos o intentar conectarse a una base de datos diferente para ver si otros parámetros en el archivo de configuración están causando el problema.

    En cualquier caso, el mensaje de error sugiere que hay un problema con la autenticación, por lo que es importante verificar las credenciales y asegurarse de que el archivo de configuración esté configurado correctamente para el entorno local.

Comments are closed.