npm run develop usa sqlite, y la producción debe usar postgres.Para REF: encontré esta respuesta aquí: https://github.com/strapi/strapi/discussions/6832
¿Alguien puede mostrarme cómo configurar esto, ya que realmente me resulta difícil leer el documento para este problema?
Actualmente en la estructura de archivos:
config/database.js Tengo estas dos configuraciones (para local y heroku): comento la configuración de postgres para que heroku funcione localmente
module.exports = ({ env }) => ({ defaultConnection: 'default', connections: { default: { connector: 'bookshelf', settings: { client: 'sqlite', filename: env('DATABASE_FILENAME', '.tmp/data.db'), }, options: { useNullAsDefault: true, }, }, }, }); 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', 27017), database: env('DATABASE_NAME', 'strapi'), username: env('DATABASE_USERNAME', ''), password: env('DATABASE_PASSWORD', ''), }, options: { ssl: false, }, }, }, });Lo que imagino que está sucediendo es que el strapi local se creó con sqlite y heroku me obligó a usar postgres como base de datos, las bases de datos no son las mismas, por lo que los datos no se leen correctamente.
(Podría estar equivocado acerca de eso....)
En este caso: ¿cómo mueve su desarrollador local (configuración de inicio rápido recomendada) a su sitio de producción?
¿Ejecutas npm build? y luego alojar strapi en su sitio front-end normal?
¿Hay alguna manera de mover los datos de una base de datos a otra?
Perdón por hacer muchas preguntas pequeñas aquí. Es posible que me haya perdido un concepto que une todo.
Gracias de antemano por cualquier ayuda, Wally
Encontré un video de Youtube muy útil que explica este proceso para el paso 1)
Cómo ejecutar una base de datos diferente dependiendo de si está siendo utilizada por desarrollo o producción.
La respuesta corta está en el archivo base de datos.js donde escribe una declaración if para ver si está usando desarrollo o producción:
Una vez que haya implementado esto, escribiré una respuesta completa :)
ENLACE DE VÍDEO: https://www.youtube.com/watch?v=xNE0TrI5OKk
PARTE 2: ¿Puedes migrar el trabajo que has hecho en strapi a una base de datos de producción, por ejemplo Heroku....?
La respuesta simple es lamentablemente (y muy frustrante): ¡NO!
Esto es del sitio de Strapis:
¿Strapi maneja la implementación o migración de contenido? Actualmente, Strapi no proporciona ninguna herramienta para migrar o implementar sus cambios de datos entre diferentes entornos (es decir, desde el desarrollo hasta la producción). Con la excepción de la configuración del administrador de contenido, para obtener más información sobre esta opción, consulte la siguiente documentación de la CLI.
ENCONTRADO AQUÍ: https://strapi.io/documentation/v3.x/getting-started/troubleshooting.html#frequently-asked-questions
También he estado hablando con un representante muy útil en la página de Strapi Slack para averiguar qué es lo que he estado haciendo mal (resulta adjudicar mucho...).
De todas formas:
¿PEQUEÑO RAYO DE ESPERANZA?
Todavía no he hecho esto, pero aparentemente puede transferir manualmente los datos y convertirlos de sqlite a postgres usando:
Tendrá que hacer un volcado de datos utilizando algún cliente DB local (DBeaver es compatible con SQLite) y luego importar esos datos al servidor PG (también puede usar DBeaver allí) Strapi no tiene ninguna herramienta o sugerencia para la migración de contenido entre entornos actualmente.
Bueno, espero que esto ayude a cualquier otra persona que se encuentre con este problema como yo....
Wally :)
Puede apuntar a ambos Strapis (dev y producción) para usar la misma base de datos, en su caso Postgres de Heroku. Si ambos utilizan la misma base de datos, las modificaciones realizadas en la estructura de datos y el contenido en dev-strapi también están disponibles en producción. La estructura de datos (por ejemplo, el nuevo tipo de contenido) no estará disponible hasta que envíe una nueva versión a Heroku, pero el nuevo contenido que usa las estructuras de datos antiguas también estará disponible en producción-strapi (ambos strapis usan la misma base de datos -> mismos datos ).
EDITAR: las siguientes líneas ya no son válidas, la versión más reciente de strapi utiliza un enfoque un poco diferente para configurar la conexión de la base de datos (ver enlace de video de otra respuesta)
Puede definir conexiones de base de datos en dev-strapi:
\config\env\desarrollo\database.json
\config\env\producción\base de datos.json
EDITAR FIN
En Postgres de Heroku, creo que ha creado variables env para la conexión de la base de datos. Puede crear las mismas variables para la versión de desarrollo creando un archivo .env (encontrará toda la información necesaria de las variables de Heroku):
DATABASE_HOST=xxx-yyy-zzz.eu-west-1.compute.amazonaws.com DATABASE_PORT=XXYY DATABASE_NAME=xxxyyyxxx DATABASE_USERNAME=xxxxxxx DATABASE_PASSWORD=123123123xyzxyzparece que realmente desea migrar sus datos entre entornos... esto no es compatible actualmente con strapi. puede intentar encontrar o escribir su propio archivo semilla de db para mover los datos entre entornos.
No use la misma base de datos de diferentes entornos.
esto ya se respondió correctamente, no estoy seguro de por qué no se seleccionó una respuesta correcta.