Las copias de seguridad para las instancias multisitio se están almacenando en la raíz del bucket, pero no aparecen en la lista en la interfaz de usuario. Las copias de seguridad para el sitio principal se almacenan bajo default como se esperaba. Esto significa que las copias de seguridad son invisibles para la restauración y no se podan según la configuración.
La sección multisitio se ve así:
site:
adapter: postgresql
database: site
pool: 25
timeout: 5000
host: data
password: secret
host_names:
- community.site.org
¿Podría ser que si DISCOURE_USE_S3 no está configurado, las copias de seguridad terminan en el lugar equivocado? (Intenté configurar use_s3 en discourse.conf, pero no reinicié unicorn, sino que ejecuté una copia de seguridad desde la línea de comandos y aún así la colocó en la raíz, no en el nombre del sub-sitio).
Hubo algún problema con las cargas en S3 (quizás una mala configuración del bucket), por lo que S3 es solo para copias de seguridad.
Uno de los sitios multisitio está colocando correctamente sus subidascopias de seguridad en el directorio correcto, pero dos no lo hacen.
Los que no van al lugar correcto tenían bases de datos restauradas de una instancia de un solo sitio, por lo que supongo que hay algo en la base de datos que está forzando a la copia de seguridad a ir a la raíz de la carpeta de copias de seguridad en lugar del nombre del sitio (o el predeterminado para el sitio predeterminado).
@gerhard, lamento molestarte, pero ¿te importaría echarle un vistazo rápido para ver si hay algo obvio y tonto que estoy pasando por alto?
Como dije (correctamente) antes, esta instancia está (¿actualmente?) usando S3 solo para copias de seguridad y no para subidas.
Son las copias de seguridad de 2 de los 3 sub-sitios las que se están colocando en la raíz del bucket de copias de seguridad. El sitio principal las está enviando a default como se esperaba, y uno de los sitios multisitio las está enviando al directorio sitename.
Hmm, ese es un comportamiento extraño. ¿Te refieres a las copias de seguridad que se suben desde el navegador o a las copias de seguridad creadas por el sistema?
No veo ninguna razón por la que las copias de seguridad creadas por el sistema terminen en el lugar equivocado. El código parece bastante sencillo.
s3_helper se configura con el bucket y el nombre multisitio correctos.
Me refiero a que al hacer una copia de seguridad desde la interfaz web o la tarea rake para dos de los 3 hosts multisitio (que ambos fueron migrados desde otro servidor) se sube la copia de seguridad a la raíz del bucket s3 de copias de seguridad en lugar de a nombre-del-sitio/nombre-de-la-copia-de-seguridad.
También me parece extraño.
Intentaré añadir algunos puts a esas funciones para ver si puedo rastrearlo.
Creo que añadí puts a la source_path y tenía la ruta completa correcta en el sistema operativo, pero cuando se sube a S3, el nombre del sitio ya no está en la ruta.
Lo miraré más de cerca la semana que viene. Las copias de seguridad están ahí, solo que no están donde Discourse las encontrará.