Rasin
(Rasin)
16 Octubre, 2019 06:38
1
Estaba intentando restaurar mi copia de seguridad en un nuevo servidor y aparecieron algunos errores.
El registro está aquí: Ubuntu Pastebin
El error podría ser:
PG::UniqueViolation: ERROR: could not create unique index "unique_index_categories_on_slug"
DETAIL: Key (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) is duplicated.
Pensé que podría ser un problema de la base de datos, pero no la edité. Solo descargué el archivo de copia de seguridad en formato tar, pero la restauré incorrectamente.
¡Por favor, ayúdenme!
ariznaf
(fernando)
16 Octubre, 2019 07:02
2
Hay otro hilo con un problema similar.
Es un problema extraño.
Muchos de nosotros lo hemos resuelto simplemente insistiendo.
Pruébalo varias veces y es posible que en alguna de ellas no aparezca el error.
Puede que tu problema sea diferente, pero se asemeja a los errores de base de datos que tuvimos al restaurar.
Parece que hay un error en los scripts de restauración o algún tipo de fallo en el sistema de base de datos PostgreSQL utilizado.
Rasin
(Rasin)
16 Octubre, 2019 07:12
3
Qué solución tan extraña… FML
¿Se podrá editar el archivo SQL para que quede normal?
Quiero decir, ¿hay alguna manera de ignorar la clave duplicada?
Rasin
(Rasin)
16 Octubre, 2019 07:57
4
Y después de reconstruir una versión anterior o una versión beta, el registro ha cambiado a:
EXCEPTION: Compression::Strategy::ExtractFailed[2019-10-16 07:53:52] /var/www/discourse/lib/compression/strategy.rb:89:in `block in extract_file'
/var/www/discourse/lib/compression/strategy.rb:85:in `open'
/var/www/discourse/lib/compression/strategy.rb:85:in `extract_file'
/var/www/discourse/lib/compression/strategy.rb:26:in `block (2 levels) in decompress'
/usr/local/lib/ruby/site_ruby/2.6.0/rubygems/package/tar_reader.rb:65:in `each'
/var/www/discourse/lib/compression/strategy.rb:18:in `block in decompress'
/var/www/discourse/lib/compression/tar.rb:26:in `get_compressed_file_stream'
/var/www/discourse/lib/compression/strategy.rb:15:in `decompress'
/var/www/discourse/lib/compression/pipeline.rb:26:in `block in decompress'
/var/www/discourse/lib/compression/pipeline.rb:24:in `each'
/var/www/discourse/lib/compression/pipeline.rb:24:in `reduce'
/var/www/discourse/lib/compression/pipeline.rb:24:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:141:in `decompress_archive'
/var/www/discourse/lib/backup_restore/restorer.rb:60:in `run'
/var/www/discourse/lib/backup_restore.rb:166:in `block in start!'
/var/www/discourse/lib/backup_restore.rb:163:in `fork'
/var/www/discourse/lib/backup_restore.rb:163:in `start!'
/var/www/discourse/lib/backup_restore.rb:22:in `restore!'
/var/www/discourse/app/controllers/admin/backups_controller.rb:119:in `restore'
¿Por qué es eso un problema? No cambié nada en el archivo tar.
Rasin
(Rasin)
16 Octubre, 2019 12:46
6
¡Muchas gracias por esta función de extracción!
¿Podrías ayudarme con el error de clave duplicada? ¿O hay alguna forma de corregir este SQL en psql?
gerhard
(Gerhard Schlager)
16 Octubre, 2019 13:39
7
Rasin:
El error podría ser:
PG::UniqueViolation: ERROR: no se pudo crear el índice único "unique_index_categories_on_slug"
DETALLE: La clave (COALESCE(parent_category_id, '-1'::integer), slug)=(5, ) está duplicada.
@daniel Creo que la migración en FIX: Add unique index to prevent duplicate slugs for categories · discourse/discourse@c71da3f · GitHub debe asegurarse de que los valores de la columna sean únicos antes de crear el índice único.
daniel
(Daniel Waterworth)
16 Octubre, 2019 14:36
8
@Rasin , Esto ya debería estar solucionado desde:
committed 02:02PM - 16 Oct 19 UTC
Slugs can be the empty string, but the added index didn't account for
that. This… commit changes the migration, stopping it from being unique
so that it can be applied everywhere and adds another migration that
recreates the index properly.
Gracias por hacérnoslo saber y nos disculpamos por las molestias. Avísanos si tienes algún otro problema.
ariznaf
(fernando)
16 Octubre, 2019 21:52
9
Sí, ya te lo he dicho: es algo extraño.
Pero funcionó para varios de nosotros, como puedes leer aquí:
Wow, trying to reproduce it so I can be sure that things will go as planned on migration, and I have the error again? I’m going to continue to try and find the steps to reproduce a fix. Because I can’t reproduce it now.
No sé si tu situación es la misma, ya que el error es similar pero no exactamente igual.
@usulrasolas comentó que editó el script con sentencias SQL para corregirlo.
Pero yo (y otros) no hemos cambiado nada, solo hemos intentado varias veces.
Es extraño, lo sé, pero puede que haya problemas de tiempo o de expiración implicados.
No lo sabemos.
Los desarrolladores lo están investigando.
Rasin
(Rasin)
17 Octubre, 2019 01:22
10
¡Gracias por todas sus sugerencias! Estamos ansiosos por las nuevas actualizaciones.