Eu configurei tudo e tentei importar flarum_import.rb. Mas diz thimira@THIMIRA:~/discourse/script/import_scripts$ bundle exec ruby flarum_import.rb\nTraceback (most recent call last):\n 1: from flarum_import.rb:3:in \u003cmain\u003e’`\n\nO que eu tenho que fazer? Por favor, ajude.
Você precisará incluir mais da saída para que alguém possa adivinhar, mas (provando que estou errado sobre isso), a linha 3 é
require "mysql2"
então parece que você precisa adicionar isso ao Gemfile e executar bundle install.
Como fazer isso? Quero dizer, como adicioná-lo ao Gemfile?
Por favor, verifique as Mensagens Diretas. Deixei uma mensagem lá.
Não é mais necessário adicionar essas gems manualmente ao Gemfile, elas já estão lá. Você só precisa habilitá-las usando IMPORT=1 antes do seu comando.
Então, basta fazer
IMPORT=1 bundle install
IMPORT=1 bundle exec ruby flarum_import.rb
Se o bundle install der um erro, talvez você também precise executar bundle config unset deployment.
Minha experiência é que, se você fizer IMPORT=1, terá uma série de falhas se ainda não tiver instalado todas as dependências para todo o material de importação extra, e algumas delas são difíceis de descobrir.
Hmm, essa não é a minha experiência - e não consigo entender como fazer de uma maneira ou de outra poderia influenciar as dependências?
@thimiraonline funcionou para você?
Coisas como esta:
Ocorreu um erro ao instalar o tiny_tds (2.1.5) e o Bundler não pode continuar.
E então, se você instalar tiny_tds, que não é trivial, você obterá
Ocorreu um erro ao instalar o sqlite3 (1.4.2) e o Bundler não pode continuar.
Mas eu acho que se você incluir
- "templates/import/mysql-dep.template.yml"
- "templates/import/mbox.template.yml"
- "templates/import/mssql-dep.template.yml"
Então pode funcionar. É o que tentarei a seguir; Por um tempo, criei meus próprios modelos para instalar essas dependências, mas espero ter descoberto que nunca precisei.
Eu tentei, mas a configuração dele tem um prefixo de tabela de banco de dados e o script não tem configuração para o prefixo. Pedi a ele para renomear as tabelas e tentarei novamente.
. . . mas os modelos de importação adicionam a Gem ao Gemfile, então se você tentar usar ``IMPORT=1você obterá \n\n```\n\n[!] Houve um erro ao analisarGemfile: Você não pode especificar a mesma gem duas vezes com requisitos de versão diferentes.\nVocê especificou: sqlite3 (~> 1.3, >= 1.3.13) e sqlite3 (>= 0). O Bundler não pode continuar.\n\n # de /var/www/discourse/Gemfile:272\n # -------------------------------------------\n # gem 'mysql2'\n \u003e gem 'sqlite3'\n # gem 'tiny_tds'\n # -------------------------------------------\n```\n\nPorque o Gemfile especifica uma versão e o modelo não.\n\nEntão, depois de tentar bastante, não estou encontrando uma maneira de tornar IMPORT=1` útil. Acho que funcionaria em uma instância de desenvolvimento onde você instalou todas essas dependências no sistema operacional, ou você criou uma maneira de instalar as dependências em um contêiner. \n\nAh, mas a importação mbox faz muito mais do que instalar sqlite3, então não é algo bom de se fazer, a menos que você realmente queira importar um mbox.\n\nTalvez eu envie um PR para um modelo de importação sqlite3.
Estou recebendo este erro ao tentar executar o script com IMPORT=1
1: from /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitwerk/kernel.rb:28:in `require' /home/user/.rbenv/versions/2.7.6/lib/ruby/gems/2.7.0/gems/zeitwerk-2.5.4/lib/zeitw erk/loader/callbacks.rb:25:in `on_file_autoloaded': expected file /home/user/disco urse/lib/freedom_patches/ip_addr.rb to define constant FreedomPatches::IPAddr, but didn't (Zeitwerk:: NameError)