localhost - Error fatal al mover pimcore de un servidor a local
server transfer (4)
Moví todos mis archivos pimcore más la base de datos de un servidor a mi servidor local e hice los cambios necesarios en el website/var/config/system.xml
. El administrador está funcionando pero el frond está mostrando un error:
Fatal error: Call to a member function getFielddefinitions() on a non-object in /var/www/html/pimcore/pimcore/models/Object/Localizedfield/Resource.php on line 179
Esta línea de código produce el error:
$this->model->getClass()->getFielddefinition("localizedfields")->getFielddefinitions()
Los requisitos del sistema y los permisos de archivos son correctos.
Para fines de prueba instalé un nuevo proyecto pimcore en mi sistema local y está funcionando perfectamente.
¿Puedo hacer algún cambio en mi base de datos ? ¿Cómo puedo ejecutar mi proyecto exitosamente en local?
Usted puede:
establecer <debug> 1 </ debug> en config.xml - esto debería mostrar un error
si no fue ayudado, revise el registro de errores de apache y / o php.
El error ocurre cuando ya hay objetos presentes usando la clase.
Solución
- Inicie sesión como backend como administrador.
- Vaya a
Settings > Object > Classes
- Para cada una de las clases en el árbol izquierdo, haga clic en ellas y luego presione Guardar en la esquina inferior derecha. (Si no puede guardar solo crea una nueva clase presionando el botón Agregar nueva clase )
Ahora intenta cargar el frondend. Funcionará.
Necesitamos ver el error real (como Vinod ya ha señalado).
Podría especular, sin embargo:
¿Son idénticas las credenciales de la base de datos (también conocido como el nombre de usuario de DB)? Si no es así, es posible que deba eliminar el DEFECTO DE SEGURIDAD del DB Dump. Consulte: Eliminar la cláusula DEFINER de MySQL Dumps para obtener sugerencias sobre cómo hacerlo.
Otra fuente de error podría ser el caché. ¿Estás usando la memoria caché Pimcore predeterminada basada en archivos? Si este es el caso, intente eliminar todos los archivos del sitio web / var / cache y sitio web / var / tmp
Háganos saber cómo resultó eso.
Pimcore utiliza vistas de la base de datos para almacenar datos de objetos. Al exportar la base de datos, en las definiciones de vistas también habrá DEFINICIÓN DE SEGURIDAD.
/*!50013 DEFINER=`prod-user`@`%` SQL SECURITY DEFINER */
- OPCIÓN: la solución de Vinot VT debería funcionar. Puede obtener lo mismo con el comando de ejecución:
php pimcore/cli/console.php deployment:classes-rebuild
OPCIÓN: Use el mismo nombre de usuario de base de datos en su env ''prod-user'' local, que es útil si va a importar mucho la base de datos prod
OPCIÓN: reemplace DEFINER =
prod-user
@%
con DEFINER =local-user
@%
antes de importar la base de datos