"O banco de dados de origem não contém uma versão reconhecível do Drupal."


9

Instalei dois sites Drupal no meu ambiente Ubuntu desktop 15.10 Apache2 (2.4.12): um é uma nova instalação do Drupal 8 e o segundo é uma cópia de um site de trabalho existente criado com o Drupal 7 (que é principalmente módulos principais) muito humilde por meio de páginas). Ambos os sites estão funcionando bem, sem qualquer problema, em qualquer lugar.

Meu objetivo é, acima de tudo, atualizar o site Drupal 7 para o Drupal 8. Fiz todas as etapas preliminares, como configurar os mesmos idiomas, manter o mínimo por meio de módulos (desinstalar quaisquer módulos no site D7 que eu pudesse trazer facilmente após a atualização ), certificando-se de que os mesmos módulos estejam instalados nos dois sites, etc., e agora eu só quero "Transcender" (espero que seja uma boa frase) meu site do Drupal 7 para o novo Drupal 8.

Para alcançar meu objetivo, instalei o módulo Drupal Upgrade no meu site Drupal 8, fui para localhost / sitename / upgrade e preenchi todos os detalhes do site Drupal 7.

Quando cliquei no botão "Revisar atualização", recebi o erro:

O banco de dados de origem não contém uma versão reconhecível do Drupal.

Pesquisei esse erro no Google como uma frase exata ("Erro") e encontrei muito poucos resultados; A maioria deles parece exigir um conhecimento de programação PHP que eu já adquiri, então não posso determinar se o erro é devido a um bug (especialmente porque este módulo ainda está em desenvolvimento pesado) ou devido ao meu erro no entender o conceito \ funcionalidade deste módulo.

  1. Que razões existem para o módulo de atualização do D8 Drupal não "gostar" do banco de dados D7 que eu forneci? Especialmente enquanto o site Drupal 7 está funcionando bem online e localmente.

  2. A migração seria uma alternativa decente para a atualização, se a atualização não for possível por qualquer motivo? Em caso afirmativo, qual é a melhor solução mais simples que você poderia imaginar para a migração?

insira a descrição da imagem aqui

Fui para /var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php e fiz:

-- return $version_string ? substr($version_string, 0, 1) : FALSE;

++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;

Que tem esse erro no topo da tela.

insira a descrição da imagem aqui


11
Tudo o que vejo é que ele não gosta que o banco de dados contenha uma instalação do Drupal 7, exatamente como o erro diz. Algo deve estar errado em sua configuração ou você não o importou para onde esperava.
Berdir

Por que não gosta do DB? O site D7 com esse banco de dados funciona muito bem, sem probs ... #

11
Ah, e @Berdir por "configuração" você quer dizer conf no módulo Drupal Upgrade no site D8? Eu tinha certeza de que os detalhes que encheram onde todos necessidade I, eu vou verificar se eu perdi alguma coisa ... Você acha que eu perdi alguma coisa ...?

Você já tentou o 127.0.0.1 em vez do localhost? (Como ele talvez realmente não chegar até um banco de dados em todos com o seu actual configuração upgrade)
leymannx

Desculpe, acho que entendi ... Você pode reformular o que escreveu? Muito obrigado !!!

Respostas:


4

Nesta fase, acho que não há uma simpleopção para atualizar de 7 para 8. Como você pode ver na nota de lançamento:

Quando estiver pronto, o núcleo do Drupal 8 também inclui o módulo Migrate para atualizar diretamente os sites Drupal 7 e 6 existentes no Drupal 8. A migração está marcada como "experimental" no Drupal 8.0.0, mas será totalmente suportada em uma próxima versão. https://www.drupal.org/news/drupal-8.0.0-released

Um pouco técnico nos bastidores: da versão 7 para a 8, eles mantêm o mesmo conceito ao criar sites (como nó, entidade, permissão, visualizações ...), mas não o núcleo. Eu diria: eles mudaram tudo para OOP, componente Symfony, arquitetura ... Portanto, não há como upgradeacessar seu site drupal diretamente da versão decente para a 8.0, você precisa migrate. Aqui está como o migratingprocesso deve ficar:

  1. Recrie o site com a mesma funcionalidade para o seu site d7.
  2. Recrie o tema (usando o modelo de galho)
  3. Migrar conteúdo por

O custo desse processo é (infelizmente) o mesmo para recriar um novo site ou mais. Com o no 3, dê uma olhada neste artigo da Fase 2: https://www.phase2technology.com/blog/upgrading-to-a-drupal-8-site/


Comecei a criar manualmente um site reescrito no Drupal 8 ... É bom que muitos dos módulos que usei no D7 entrem no núcleo; Espero que, no momento em que migrarei para o Drupal 9, a tecnologia de migração chegue a um estado em que possa ser mais parcial, feita em diferentes contextos, dados on-page e metadados do nó, redirecionamentos de nó, arquivos, visualizações, Painéis, tudo por si próprio, tanto quanto possível ... dividir o processo em diferentes estágios (quando você pode iniciar a partir de cada estágio possível sempre que quiser) é algo que espero ...

Desculpe cancelar a inscrição: Acabei de postar minha resposta abaixo com detalhes específicos sobre o que provavelmente aconteceu, consulte. A recompensa está com você, é claro.

2

Sua mensagem de erro corresponde exatamente à string contida na linha em http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 no código do módulo "Drupal Upgrade" ( https: / /www.drupal.org/project/migrate_upgrade ).

Isso mostra que não é um bug, mas uma "exceção sendo lançada". Olhando para as três linhas anteriores desse código, acho que é apenas um problema na configuração da conexão.

Talvez isso ajude também:

  • uma citação da edição https://www.drupal.org/node/2628440 (comentário nº 3):

    Para verificar se o banco de dados de origem é um banco de dados Drupal válido e para determinar a versão do banco de dados, o processo de atualização examina a tabela 'system' - essa tabela está presente no banco de dados que você especificou no formulário? A instalação do Drupal nesse banco de dados é prefixada (e, nesse caso, você inseriu o prefixo na seção "Opções avançadas" do formulário)? ".

  • Seguido pelo comentário nº 4 da mesma edição: "O fornecimento do prefixo das tabelas resolveu o problema.".

E, claro, o comentário de benjy (obrigado!) Também ajudaria a obter mais detalhes sobre o erro real em que você está se deparando, ou seja:

você pode imprimir $ e-> getException () aqui cgit.drupalcode.org/migrate_upgrade/tree/src/… e então verá o erro do PDO

Você pode (temporariamente) adicionar essa impressão entre as linhas 122 e 123 no código mostrado no link.


Como mencionei na pergunta, não tenho conhecimento de PHP para entender qual é o problema desse vasto código PHP ... Você pode editar a pergunta e explicar em palavras simples o que é realmente essa "Exceção sendo lançada" e o que é o caminho pisado para lidar com isso? Por favor, o mais simples possível, estou começando a provar o PHP.

@benos Simplesmente significa que, muito provavelmente, algo muito trivial está configurado incorretamente nas configurações de migração. Um erro de digitação, uma senha errada, um URL errado. Algo parecido.
Leymannx

@benos, você pode imprimir $ e-> getException () aqui cgit.drupalcode.org/migrate_upgrade/tree/src/… e então verá o erro do PDO.
benjy

@leymannx Se eu criei dois bancos de dados localmente (um para o D7 e outro para o D8), apenas o do D7 deve ter exatamente os mesmos detalhes no site on-line que eu quero atualizar, certo?

@leymannx Eu recriei tudo. Os dados locais do D7 são exatamente os mesmos no site online do D7: A pasta do site é a mesma; O nome do banco de dados e o nome de usuário são iguais e as senhas são iguais; Também adicionei o prefixo e, embora tudo pareça estar no lugar, ainda recebo o mesmo erro.

0

No momento em que você força a base de código a pular a leitura de {system}, ela morre sem encontrar a próxima tabela do banco de dados, {field_config_instance}. Em outras palavras: ele não está lendo seu banco de dados D7. Talvez tente ler o D8, talvez algo totalmente diferente, como poderíamos saber? É mais provável que você esteja entrando na configuração incorreta do banco de dados (por exemplo, os dois sites estão em servidores diferentes, com o servidor mysql sendo localhost nos dois, mas localhost não é o mesmo servidor). Acabei de verificar o módulo de contribuição Migrate Upgrade e o código do módulo de migração principal e seria extremamente surpreendente se houvesse um erro relacionado ao prefixo, pois ambos lidam com toda uma matriz de configurações do banco de dados, não por peça.

É impossível dizer sem ter acesso à sua infra-estrutura sobre como corrigir isso. Desculpa. Se eu pudesse votar para fechá-lo, mas como há uma recompensa, não posso. Não podemos ajudá-lo e esta pergunta não ajudará os outros. A única ajuda possível é esta: leia e compreenda o arquivo de configurações do Drupal 7 e forneça as credenciais corretas para o módulo Migrate Upgrade (a grande quantidade de comentários já mostra que isso não está indo a lugar algum.)

Uma solução possível a longo prazo incluiria um recurso no módulo contrib, no qual as pessoas podem fazer upload de seu settings.php e, em seguida, poderíamos tentar usá-lo. Isso é extremamente frágil, mas vale a pena, eu acho. Quando alguém terá tempo para codificá-lo ...

Não tenho ideia de por que as pessoas votaram tão fortemente nisso. Existe mais alguém que tenha o mesmo problema?


0

Muito tempo se passou desde que eu postei isso, mas acho que agora sei qual era o problema:

Deixei 2-3 módulos instalados, o que (então) achei "tão básico", para ter certeza de que eles tinham um caminho de migração, assim como todos os módulos principais.

Estes foram, se bem me lembro: Metatag e Redirect (você passa de D7 Globalredirect & Redirect para Redirect no Drupal 8).

Não apenas os deixei no site D7, mas também os instalei no D8; portanto, nenhuma das versões do meu site era apenas básica, conforme necessário.

Foi minha primeira migração e cometi esse erro como um total de novatos no projeto. Eu estava realmente convencido de que "não pode ser" que esses módulos não tenham um caminho de migração (e quando você pensa sobre isso, eles realmente deveriam ter), mas então descobri que, de fato, normalmente apenas os módulos principais têm e qualquer coisa Caso contrário, deve ter um caminho de migração personalizado ou de contribuição.

Só para você saber --- Esses e outros módulos possuem caminhos de migração de contribuição que você pode usar, corrigindo-os com esse caminho de migração (você o "injeta" no módulo com o caminho).

Enfim, não era o meu caso naquela época e eu tinha certeza de que ele vinha com o sistema ...

Eu estava dolorosamente errado e isso me parece a única razão pela qual a migração acima falhou; Até reforcei essa suposição com um pequeno experimento que fiz antes da minha última migração bem-sucedida, há cerca de 2 meses.


0

Uma vez eu recebi essa mensagem de erro. Acabou sendo o $ db_prefix definido por mim "drupal_". Você deve colocar isso em opções avançadas.

Atenciosamente, Carlos Aleman

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.