Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

827
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!