Se entendi bem, você não teve problemas em seguir os passos anteriores, criando/editando o import.yml ao lado do app.yml, reconstruindo o container import e agora nem consegue entrar nele. Correto? Isso é realmente estranho!
O que este comando retorna? ls -l /var/discourse/containers
Continua o mesmo: app.yml e import.yml (mais um arquivo “bak” do app.yml).
Pode haver “problemas”, pois tenho tentado instalar isso no Lightsail de 1 GB (que inicialmente é 940 MB e após atualizar o Ubuntu se torna “921 MB”). Usei a instalação oficial e o que foi instalado foi algo como 3.3.* beta-algo (enquanto o Wiki mostra 3.2 como a versão estável mais recente). A instalação leva de 1h15min a 1h20min com 4 GB de swap. O “launcher rebuild import” leva cerca de 2h.
Algo pode ter sido encerrado incorretamente devido à condição de pouca memória?
A propósito, os arquivos de backup da configuração de 2 GB serão legíveis na configuração de 1 GB?
Foi bem-sucedido? Após uma reconstrução, o contêiner deve ser iniciado.
Você não pode entrar no contêiner se ele não estiver iniciado (./launcher start import)
Provavelmente foi isso. Existem vários tópicos relacionados a pouca memória/swap e falha na reconstrução aqui – geralmente não há escolha a não ser aumentar a RAM/swap.
Eu não sou um especialista aqui, mas espero que alguém possa lhe dar uma visão melhor.
Aparentemente, a RAM é um problema. Para o Lightsail 2GB/2GB, a instalação limpa é cerca de 3,5-4x mais rápida e a reconstrução do contêiner de importação foi cerca de 10x mais rápida (ou até mais).
Ainda assim, receio que o script de importação possa não funcionar para o phpBB 3.3.3. De qualquer forma, tentei duas vezes com o mesmo resultado: apenas uma palavra de um nome de categoria (de ~10 categorias) foi importada como uma "categoria" vazia. O dump textual do MySQL é bem pequeno, 2,66MB. Todos os prefixos de tabela estão como exigido. Sem imagens, sem smilies etc.
No geral, sem fóruns, sem categorias de fórum ou postagens, mas todos os (algumas centenas) usuários foram importados corretamente junto com suas estatísticas.
Parece que o phpBB 3.3.3 foi a atualização que mudou algo sobre a versão do MySQL utilizada, mas este é um arquivo de dump aqui, então não deveria importar afinal.
Alguma ideia do que mais pode ser verificado?
Você quer dizer 4GB para abrir/ler/analisar esse arquivo de texto de 2.6MB? Você é o desenvolvedor do Discourse? Um executável binário para ler esse dump (extraindo todos os dados usados pelo Discourse) e salvá-lo em qualquer outra coisa deveria, na minha opinião, ter cerca de 200KB com um buffer de, digamos, 100KB (sem se preocupar em incluir todo o MariaDB para essa ação simples).
Acho que não se trata de RAM. O procedimento foi rápido e exibiu o progresso de importação para as tabelas importadas. Ele não “saiu”. A tabela de usuários está no final do dump, depois dos tópicos, etc.
Eu queria fazer isso de novo, experimentando copiar/colar essa tabela de usuários para o topo e realizar os mesmos passos do manual/página acima (também com um dump criado pelo phpMyAdmin em vez do phpBB), mas agora o Discourse se recusa a iniciar o procedimento tentando se conectar remotamente, embora nenhum dado de conexão tenha sido adicionado.
Eu reconstruí o contêiner de importação, mas talvez algo precise ser excluído primeiro?
Eu ganho a vida apoiando o Discourse e já fiz mais migrações do que consigo contar, mas acho que cem ou mais. 2 GB provavelmente funcionarão, especialmente se você tiver apenas alguns milhares de tópicos e usuários, mas como você precisa disso por um curto período de tempo, mais RAM não é caro e não pode prejudicar. Concordo que provavelmente não é o problema.
Quando o script foi executado, ele contou as categorias, usuários, tópicos e posts?
O script pulará os dados importados e criará dados de campo personalizados para pular esses no futuro, então para executá-lo novamente, você precisa limpar o banco de dados do Discourse. Como você diz que ele não importou nada, não está claro se isso é necessário. Pareceria que ou ele importou e você não consegue encontrá-lo por algum motivo, ou falhou porque não encontrou os dados e você precisa modificar o script de alguma forma; em nenhum desses casos você precisará limpar o banco de dados.
Não exatamente:
“todos (algumas centenas) de usuários foram importados corretamente junto com suas estatísticas”
Tentei reconstruir o contêiner novamente. As mesmas configurações. Não mudei nada e após a etapa:
import_phpbb3.sh # dentro do contêiner Docker
o script agora exibe:
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mysql2-0.5.6/lib/mysql2/client.rb:97:in `connect’: Unknown database ‘phpbb’ (Mysql2::Error)
Talvez ainda haja alguns arquivos temporários usados anteriormente para excluir?
Eventualmente usei o dump do phpMyAdmin. Existe algum exemplo (ou especificações mais detalhadas) de como criar as seções de mapeamento no arquivo settings.yml (de importação)?
Minha tabela php_forums se parece com o seguinte:
Parece que quaisquer IDs que eu use e não importa se eu também especificar a seção “new_categories: ”, a mensagem gerada pelo container de importação está ok:
criando novas categorias
11 / 11 (100,0%) [2803 itens/min] n]
criando categorias
11 / 11 (100,0%) [2704 itens/min]
mas o que é criado são duas categorias principais (que eram “fóruns” no phpBB com parent_id 0) e uma subcategoria vazia em cada uma delas. O procedimento importa todas as postagens, mas elas ficam “órfãs”.
Bem, na verdade, dei um passo à frente corrigindo meu próprio erro: apenas coloquei comentários no arquivo settings.yml usando o estilo C/C++, no final das linhas. Isso aparentemente impediu que os subfóruns fossem “processados” (embora nenhum erro tenha sido exibido).
Adicionei as categorias e subcategorias como “novas” e mapeei os IDs antigos.
Ainda existem todas as postagens não anexadas a nenhuma categoria. Tais tópicos são armazenados em uma tabela Postgres? Como eles podem ser excluídos?
Adicionei algumas correções ao phpbb_mysql.sql, pelo menos para permitir que o script crie todas as categorias originais, mas não é suficiente.
Ao processar tópicos/posts, há apenas uma longa lista do tipo:
Post pai [algum id] não existe. Pulando [algum id]
e, claro, não há posts importados.
Gostaria de saber se alguém poderia confirmar que os scripts padrão não funcionam com as tabelas do phpBB 3.3.3?
Eventualmente, consegui usar o arquivo de dump phpBB3.3.3 sem definir as categorias como novas e sem todo o mapeamento no arquivo settings.yml.
Com o arquivo de dump original phpBB_mysql.sql, o script de migração para na etapa em que as categorias são carregadas e exibe um erro sobre “corpo de categoria vazio”.
Ocorre se o campo “forum_desc” na tabela “phpbb_forums” para as categorias principais do fórum (que não têm categorias pai).
Após importar apenas essa primeira categoria parcialmente, o restante aparentemente fica confuso.
Usar uma instalação nova e inserir algum texto nos campos da tabela acima parece resolver esse problema.