He instalado dos sitios de Drupal en mi entorno local de escritorio Ubuntu 15.10 Apache2 (2.4.12): uno es una instalación nueva de Drupal 8 y el segundo es una copia de un sitio de trabajo existente construido con Drupal 7 (que es principalmente módulos de núcleo basado, muy humilde por medio de páginas). Ambos sitios funcionan bien sin ningún problema, en cualquier lugar.
Mi objetivo es, en primer lugar, actualizar el sitio de Drupal 7 a Drupal 8. Hice todas las etapas preliminares, como configurar los mismos idiomas. ), asegurándome de que los mismos módulos estén instalados en ambos sitios, etc., y ahora solo quiero "Transcender" (espero que sea un buen fraseo) mi sitio Drupal 7 en el nuevo Drupal 8.
Para lograr mi objetivo, instalé el módulo Drupal Upgrade en mi sitio Drupal 8, fui a localhost / sitename / upgrade y completé todos los detalles del sitio Drupal 7.
Cuando hice clic en el botón "Revisar actualización" recibí el error:
La base de datos de origen no contiene una versión reconocible de Drupal.
Busqué en Google este error como una frase exacta ("Error") y encontré muy pocos resultados; La mayoría de ellos me parecen requerir un conocimiento de programación PHP que aún he adquirido, por lo que no puedo determinar si el error se debe a un error (especialmente porque este módulo todavía está en desarrollo) o debido a mi error en entendiendo el concepto \ funcionalidad de este módulo.
¿Qué razones hay para que el módulo de actualización D8 Drupal no "parezca" a la base de datos D7 que proporcioné? Especialmente mientras el sitio de Drupal 7 funciona bien tanto en línea como localmente.
¿Sería la migración una alternativa decente para la actualización, si la actualización no es posible por alguna razón? Si es así, ¿cuál es la mejor solución más simple que podría pensar para la migración?
Fui a /var/www/html/benia/modules/migrate_upgrade/src/MigrationCreationTrait.php e hice:
-- return $version_string ? substr($version_string, 0, 1) : FALSE;
++ return 7;
++ return $version_string ? substr($version_string, 0, 1) : FALSE;
Que obtuvo este error en la parte superior de la pantalla.
Respuestas:
En esta etapa, no creo que haya una
simple
opción para actualizar de 7 a 8. Como puede ver en la nota de lanzamiento:Un poco técnico detrás de escena: de la versión 7 a la 8, mantienen el mismo concepto al construir el sitio (como nodo, entidad, permiso, vistas ...) pero no el núcleo. Yo diría: cambiaron todo a OOP, componente de Symfony, arquitectura ... Por lo tanto, no hay forma de
upgrade
acceder directamente a su sitio drupal desde una versión decente a 8.0, tiene que hacerlomigrate
. Así es comomigrating
debería verse el proceso:El costo de este proceso es (desafortunadamente) el mismo para recrear un sitio nuevo o más. Con el no 3, eche un vistazo a este artículo de la Fase 2: https://www.phase2technology.com/blog/upgrading-to-a-drupal-8-site/
fuente
Su mensaje de error es una coincidencia exacta con la cadena contenida en la línea en http://cgit.drupalcode.org/migrate_upgrade/tree/src/MigrationCreationTrait.php#n40 dentro del código del módulo "Actualización Drupal" ( https: / /www.drupal.org/project/migrate_upgrade ).
Muestra que no es un error, sino una "excepción lanzada". Mirando las 3 líneas anteriores de ese código, creo que es solo un problema al configurar la conexión.
Quizás esto ayude también:
una cita del número https://www.drupal.org/node/2628440 (comentario nr 3):
Seguido del comentario n ° 4 en el mismo problema: "Proporcionar el prefijo de tablas resolvió el problema".
Y, por supuesto, el comentario de benjy (¡gracias!) También ayudaría a obtener más detalles sobre el error real con el que se está encontrando, es decir:
Puede agregar (temporalmente) dicha impresión entre las líneas 122 y 123 en el código que se muestra a través del enlace.
fuente
En el momento en que fuerza a la base de código a omitir la lectura {system}, muere al no encontrar la siguiente tabla de base de datos, {field_config_instance}. En otras palabras: no está leyendo su base de datos D7. Quizás intenta leer el D8, quizás algo totalmente diferente, ¿cómo podríamos saberlo? Es más que probable que esté ingresando una configuración de base de datos incorrecta (por ejemplo, los dos sitios están en servidores diferentes con el servidor mysql siendo localhost en ambos, pero localhost no es el mismo servidor). Acabo de comprobar el módulo contrib Migrate Upgrade y el código del módulo central migrate, y sería extremadamente sorprendente si hubiera un error relacionado con el prefijo, ya que ambos manejan una matriz de configuración de base de datos completa, no pieza por pieza.
Es imposible decir sin tener acceso a su infra sobre cómo solucionar esto. Lo siento. Si pudiera votaría para cerrarlo, pero como hay una recompensa, no puedo. No podemos ayudarlo y esta pregunta no ayudará a otros. La única ayuda posible es esta: lea y comprenda su archivo de configuración de Drupal 7 y proporcione las credenciales correctas al módulo Migrar actualización (la gran cantidad de comentarios ya muestran que esto no va a ninguna parte).
Una posible solución a más largo plazo incluiría una función en el módulo contrib donde las personas pueden cargar su settings.php y luego podríamos intentar usarlo. Esto es extremadamente frágil pero vale la pena intentarlo, supongo. Cuando alguien tendrá tiempo de codificarlo ...
No tengo idea de por qué la gente votó tanto por esto. ¿Hay alguien más que tenga el mismo problema?
fuente
Ha pasado mucho tiempo desde que publiqué esto, pero creo que ahora sé cuál era el problema:
Dejé 2-3 módulos instalados, lo que (entonces) pensé que era "tan básico", así que estaba seguro de que tienen una ruta de migración al igual que todos los módulos principales.
Estos fueron, si no recuerdo mal: Metatag y Redirect (te mueves de D7 Globalredirect & Redirect a solo Redirect en Drupal 8).
No solo los dejé en el sitio D7, también los instalé en el D8, por lo que ninguna de las versiones de mi sitio era solo de núcleo, según fuera necesario.
Fue mi primera migración y cometí ese error como estudiantes de primer año del proyecto. Estaba realmente convencido de que "no puede ser" que estos módulos no tengan una ruta de migración (y cuando lo piensas, realmente deberían tener), pero luego descubrí que, de hecho, generalmente solo los módulos centrales tienen y cualquier cosa else debería tener una ruta de migración personalizada o contrib.
Para que lo sepas: estos y otros módulos tienen rutas de migración contrib que puedes usar parchándolas con esta ruta de migración (la "inyectas" en el módulo con la ruta).
De todos modos, no era el caso para mí en ese entonces y estaba seguro de que viene con el sistema ...
Estaba terriblemente equivocado y esta me parece la única razón por la cual falló la migración anterior; Incluso reforcé esta suposición con un pequeño experimento que hice antes de mi última migración exitosa hace aproximadamente 2 meses.
fuente
Una vez que recibí ese mensaje de error. Resultó ser el $ db_prefix establecido por mí "drupal_". Deberías poner eso en opciones avanzadas.
Saludos, Carlos Aleman
fuente