Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

821
Vistas
Strapi me da errores de base de datos en producción, aunque estoy usando las credenciales correctas

EDITAR: Encontré un archivo en /config/database.js que se usa para conectarse a sqlite en desarrollo. Cuando cambio el nombre del cliente de sqlite a postgres, ahí es cuando comienza el problema.

¿No se supone que strapi debe ignorar archivos como este en producción? ¿Cómo puedo hacer que strapi ignore este archivo y solo use mi base de datos de postgres?

 module.exports = ({ env }) => ({ defaultConnection: 'default', connections: { default: { connector: 'bookshelf', settings: { client: 'sqlite', filename: env('DATABASE_FILENAME', '.tmp/data.db'), }, options: { useNullAsDefault: true, }, }, }, });

Finalizar edición.

Estoy tratando de hacer que mi aplicación strapi se inicie en producción, pero sigue fallando diciendo

 [2020-07-22T01:15:40.246Z] debug ⛔️ Server wasn't able to start properly. [2020-07-22T01:15:40.247Z] error error: password authentication failed for user "<redacted>"

El resto de la salida está relacionada con pg, lo que me lleva a pensar que se trata de un error de conexión a la base de datos. Puedo iniciar sesión en mi base de datos desde la línea de comando usando psql -U postgres -W , lo que confirma que conozco mi contraseña.

Además, estoy usando pm2 para ejecutar cosas, y en lugar de usar process.env en ese archivo, solo agregué las variables db directamente, pero eso no hizo ninguna diferencia.

La aplicación ha sido construida en modo de producción. Tengo 3 dbs en pg, uno llamado postgres, uno con el nombre de mi aplicación y otro llamado strapi.

Gracias

mi /config/enviroronments/production.database.json se ve así

 { "defaultConnection": "default", "connections": { "default": { "connector": "bookshelf", "settings": { "client": "postgres", "host": "${process.env.DATABASE_HOST || '127.0.0.1'}", "port": "${process.env.DATABASE_PORT || 27017}", "database": "${process.env.DATABASE_NAME || 'strapi'}", "username": "${process.env.DATABASE_USERNAME || ''}", "password": "${process.env.DATABASE_PASSWORD || ''}" }, "options": { "ssl": false } } } }

y tengo un archivo .env en la raíz de la aplicación de back-end que se ve así

 DATABASE_HOST=localhost DATABASE_PORT=5432 DATABASE_NAME="<redacted - all letters>" DATABASE_USERNAME="<redacted - all letters>" DATABASE_PASSWORD="<redacted - all letters>"
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Encontré el problema. Cuando creé la aplicación, usé sqlite como mi base de datos. Como resultado, el archivo base de datos.js predeterminado no se configuró de manera que pudiera sobrescribirse con variables env.

Creé una nueva aplicación local de Strapi con pgsql como mi base de datos y copié el contenido del archivo database.js en mi servidor. Todo funcionando ahora.

Nuevo archivo para referencia

 module.exports = ({ env }) => ({ defaultConnection: 'default', connections: { default: { connector: 'bookshelf', settings: { client: 'postgres', host: env('DATABASE_HOST', '127.0.0.1'), port: env.int('DATABASE_PORT', 5432), database: env('DATABASE_NAME', 'my-strapi-project'), username: env('DATABASE_USERNAME', 'testing'), password: env('DATABASE_PASSWORD', 'testing'), ssl: env.bool('DATABASE_SSL', false), }, options: {} }, }, });
over 4 years ago · Santiago Trujillo Denunciar

0

Tuve la misma situación en el desarrollo. Creé una aplicación strapi con SQLite y decidí usar PostgreSQL. Ahí es donde vino el problema. Así que la solución fue la siguiente:

nombre_aplicación/config/database.js

 module.exports = ({ env }) => ({ connection: { client: 'postgres', connection: { host: env('DATABASE_HOST', '127.0.0.1'), port: env.int('DATABASE_PORT', 5432), database: env('DATABASE_NAME', 'db_name'), user: env('DATABASE_USERNAME', 'postgres'), password: env('DATABASE_PASSWORD', 'postgres'), ssl: env.bool('DATABASE_SSL', false), }, }, });

Sus dependencias en app_name/package.json deberían ser como

 "dependencies": { "@strapi/strapi": "4.1.8", "@strapi/plugin-users-permissions": "4.1.8", "@strapi/plugin-i18n": "4.1.8", "pg": "8.6.0" }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda