Preciso ordenar os anexos do XenForo de alguma forma ou basta copiar/colar a estrutura e a pasta /tmp/attachments?
Estou fazendo a instalação em uma nova VM com um snapshot, para que possa alterar detalhes rapidamente e recomeçar a migração.
Ontem, coloquei a pasta de anexos do XenForo, que tem a seguinte estrutura: uma pasta principal chamada “attachments” e, dentro dela, 9 subpastas nomeadas de 0 a 9. Dentro de cada uma delas, há cerca de 600 a 700 anexos (.jpg). Coloquei a pasta em var/discourse/shared/standalone/tmp/attachments e alterei o script xenforo.rb, adicionando:
ATTACHMENT_DIR = '/shared/tmp/attachments'
Testei com ls /tmp/attachments e a estrutura estava correta, mas enfrentei o mesmo erro da primeira vez:
creating topics and posts
74 / 74752 ( 0.1%) [99817 items/min] Traceback (most recent call last):
18: from script/import_scripts/xenforo.rb:396:in \u003cmain\u003e' 17: from /var/www/discourse/script/import_scripts/base.rb:47:in perform’
16: from script/import_scripts/xenforo.rb:32:in execute' 15: from script/import_scripts/xenforo.rb:174:in import_posts’
14: from /var/www/discourse/script/import_scripts/base.rb:869:in batches' 13: from /var/www/discourse/script/import_scripts/base.rb:869:in loop’
12: from /var/www/discourse/script/import_scripts/base.rb:870:in block in batches' 11: from script/import_scripts/xenforo.rb:180:in block in import_posts’
10: from /var/www/discourse/script/import_scripts/base.rb:490:in create_posts' 9: from /var/www/discourse/script/import_scripts/base.rb:490:in each’
8: from /var/www/discourse/script/import_scripts/base.rb:491:in block in create_posts' 7: from script/import_scripts/xenforo.rb:186:in block (2 levels) in import_posts’
6: from script/import_scripts/xenforo.rb:315:in process_xenforo_post' 5: from script/import_scripts/xenforo.rb:324:in process_xf_attachments’
4: from /usr/local/lib/ruby/2.6.0/set.rb:338:in each' 3: from /usr/local/lib/ruby/2.6.0/set.rb:338:in each_key’
2: from script/import_scripts/xenforo.rb:326:in block in process_xf_attachments' 1: from /usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in squish!’
/usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb:22:in gsub!': can't modify frozen String (FrozenError) root@my-app:/var/www/discourse#Texto pré-formatado`
2019-11-15T23:00:00Z
Removi o ! do método gsub! no seguinte local:
/usr/local/lib/ruby/gems/2.6.0/gems/activesupport-6.0.1/lib/active_support/core_ext/string/filters.rb
Agora, o script de importação não para mais, continua e exibe estas informações sobre os anexos:
De qualquer forma, por exemplo, a última mensagem:
Could not find file /shared/tmp/attachments//2/2485-c3da9f6ee1e33d3ebf418c5dea1f9e8a.data. Skipping attachment id 2485
…o arquivo ESTÁ nesse caminho, mas não há arquivo .data. Em vez de .data, há um arquivo .JPG.
Qualquer ajuda é bem-vinda.
2019-11-15T23:00:00Z
O script tinha um bug. Encontrei e corrigi; agora consigo importar os anexos.