Configurar un servidor de pruebas

Ese es el propósito de la configuración anterior; es muy útil tener el servidor de staging apuntando al mismo bucket, ya que esto facilita mucho mantenerlos sincronizados.

Sin embargo, no quieres que contribuya con ninguna copia de seguridad automáticamente (ni que elimine ninguna), de ahí que estén desactivadas con estas configuraciones:

Estoy de acuerdo en que la CDN necesita ser desactivada para tu sitio de staging. Yo no he tocado eso, pero una vez que averigües cómo hacerlo, por favor actualiza / añade a la wiki en el OP.

2 Me gusta

Gracias, Nathan. Vi una mención de que las copias de seguridad de S3 facilitaban las cosas, pero una copia de seguridad es diferente de los activos del sitio, así que no estaba seguro.

Ya he desactivado las copias de seguridad y los correos electrónicos, así que todo está bien ahí. Me pondré a señalar el servidor de ensayo al bucket existente y me aseguraré de que no esté utilizando la CDN.

1 me gusta

Compartir copias de seguridad es muy útil porque facilita la copia de su base de datos de producción a staging.

2 Me gusta

Tengo planeado crear un espejo de mi producción de Discourse utilizando el método rsync.

Tengo un par de otros sitios web que se integran con Discourse, por lo que tener las versiones de desarrollo/prueba de esos sitios capaces de acceder e interactuar con una versión de desarrollo/prueba/staging de Discourse sería ideal.

Por lo tanto, solo lo encendería cuando fuera necesario, y restauraría una copia de seguridad de la base de datos de mi PROD en mi STAGING periódicamente, no diariamente y quizás tan poco como una vez al mes.

Si hago esto, ¿cómo evito que cambie algunas configuraciones al restaurar la base de datos? :thinking:

Estos, por ejemplo, serían invaluables:

¿Hay alguna forma de restaurar una copia de seguridad de la base de datos y luego aplicar manualmente algunas configuraciones antes de iniciar Discourse? ¿Alguna otra idea, sugerencia, error? :thinking:

Si mantienes copias de seguridad en S3 y las configuras a través de variables de entorno, entonces puedes crear fácilmente un nuevo sitio que pueda restaurar esa copia de seguridad. Simplemente crea una nueva VM, clona discourse, copia el yml, reconstruye y restaura. Puedes anular la configuración en la base de datos con variables de entorno como en la cita de tu publicación.

3 Me gusta

Perfecto, suena casi demasiado fácil :smiley:

2 Me gusta

¿Me falta algún paso? Estoy bastante seguro de que esto funcionó hace aproximadamente un año. Pero ahora, aunque se puebla, no agrega ningún tema ni publicación más allá de la sección Acerca de la categoría… ¿ha cambiado algo?

Cuando lo intenté ahora mismo, creó registros de grupo y usuario, pero al crear categorías falló con

ActiveRecord::RecordInvalid: Validación fallida: El nombre de la categoría ya está en uso (ActiveRecord::RecordInvalid)

Parece que debería ser lo suficientemente inteligente como para no intentar crear una categoría con un nombre existente.

Sin embargo, el mío no era un sitio vacío. También hay una tarea dev:repopulate, que primero borra la base de datos.

1 me gusta

¡Gracias Jay! Aquí tienes una pantalla que muestra lo que intenté… Parece que necesito estar en el “entorno de desarrollo”. ¿Cómo entro ahí?

Terminé restaurando una copia de seguridad antigua de una de mis instancias de Discourse donde había utilizado este método para poblar. Tuve que hacer esto, pero funcionó.

Hay algo que tienes que hacer para poder eliminar la base de datos. Si ejecutas la tarea de rake db:drop, te dirá qué es. Así que supongo que necesitarías sv stop unicorn y luego eliminar, crear y migrar la base de datos antes de ejecutar la tarea. O eso es lo siguiente que intentaría, pero tú tienes otra solución…

1 me gusta

14 publicaciones se dividieron en un nuevo tema: Cambiar servidor a una configuración de 2 contenedores

Estoy intentando poblar datos de prueba en mi servidor de staging, pero obtengo un error:

rake aborted!
Los comandos de la base de datos solo se admiten en el entorno de desarrollo

Esto es en una configuración multisitio, por lo que los comandos que estoy ejecutando son:

./launcher enter web_only
ALLOW_DEV_POPULATE=1 bundle install
RAILS_DB=instance-x ALLOW_DEV_POPULATE=1 rake dev:populate

Que he estado usando sin problemas hasta ahora, pero ahora obtengo este error. ¿Puedo establecer una variable de entorno para permitir comandos de base de datos en producción?