IIC2513-2018-2 / syllabus

Material y coordinación del curso
10 stars 4 forks source link

Problema PostgreSQL password al crear base de datos #7

Closed pdesolminihac closed 6 years ago

pdesolminihac commented 6 years ago

Hoy llegue un poco tarde a clases y no logre entender que había que hacer con la clave de postgres para que funcionara el comando:

./node_modules/.bin/sequelize db:create

y al tratar de crear la base de datos me tira el error: postgres_error

He buscado en internet un buen rato y no he podido encontrar que debo hacer. ¿Que puedo hacer para que funcione?

elramirezv commented 6 years ago

Hola!

Yo llegué hasta el mismo punto, y me aparecía esto:

screenshot from 2018-09-01 10 10 00

Luego me perdí, porque me dediqué a buscar en Google pero tampoco logré solucionarlo. La verdad es que nose si es un error, pero tampoco sé si repercutirá en el futuro el archivo gulpfile.

Los pasos que alcancé a realizar fueron:

yarn install
yarn add sequelize

¿Me habré saltado alguno?

Muchas gracias de antemano!

raulmt commented 6 years ago

@pdesolminihac la conexión a la BD se hará con el usuario que tengas configurado en config/database.js. Por default, ese archivo usará las variables de entorno DB_USERNAME y DB_PASSWORD. Si no tienen nada ahí, entonces no usará ningún username e intentará conectarse sin ello. Si ustedes tienen configurado PostgreSQL para que les acepte conexiones sin especificar un username (normalmente usa como usuario su propio usuario del sistema operativo) entonces no hacer nada debiera funcionarles (puedes probarlo así: si vas a la consola y te funciona ejecutar plsql <nombre de alguna BD> entonces lo anterior te debiera funcionar bien también.

Ahora, si no es así, y necesitas especificar un username al ejecutar plsql, entonces deberás especificar ese mismo username para que la aplicación web se pueda conectar. Puedes usar esas variables de entorno mencionadas arriba o bien en config/database.js puedes especificar directamente en la sección development tu username: <tu user> y password: <tu password>.

Si quieres que ese usuario le permita a sequelize la operación de crear una base de datos, necesitas que ese usuario esté configurado en un base de datos con privilegios para crear una base de datos. Si es sólo un usuario con permisos sobre una BD específica entonces no podrá crear la base de datos, sólo podrá usarla cuando ésta ya exista de antemano (y deberás crear la base de datos manualmente en PostgreSQL).

Espero te aclare tu duda. Si no, me avisas ;)

raulmt commented 6 years ago

@elramirezv123 estás seguro de que copiaste fielmente todo el template, incluyendo la presencia de archivos que comienzan por .?

Lo otro, por alguna razón estás usando una versión de sequelize-cli muy antigua. En el package.json del template está declarada la versión "sequelize-cli": "^4.1.1", lo cual me instala efectivamente esa, que es la última. En tu output aparece que usas CLI 2.8.0, que es muy anterior.

Te recomiendo que descargues nuevamente el template desde aquí https://github.com/IIC2513-2018-2/template/releases y que luego, dentro del directorio de ese template, ejecutes simplemente:

yarn
./node_modules/.bin/sequelize db:create

No necesitas ejecutar un yarn add sequelize dado que eso ya está considerado en las dependencias declaradas.

elramirezv commented 6 years ago

@raulmt Muchas gracias por la respuesta. Al final lo hice funcionar configurando psql. Sin embargo, no me había dado cuenta del detalle de sequelize-cli. Asique me bajé de nuevo el template y ahora si se instaló correctamente con la version 4.1.1. Ahora no tuve ningún error y todo bien :+1:

¡Gracias!