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.
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.
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?
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.
Respostas:
Nesta fase, acho que não há uma
simple
opção para atualizar de 7 para 8. Como você pode ver na nota de lançamento: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
upgrade
acessar seu site drupal diretamente da versão decente para a 8.0, você precisamigrate
. Aqui está como omigrating
processo deve ficar: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/
fonte
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):
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 (temporariamente) adicionar essa impressão entre as linhas 122 e 123 no código mostrado no link.
fonte
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?
fonte
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.
fonte
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
fonte