Estoy implementando un proyecto barebone de Laravel en Microsoft Azure, pero cada vez que intento ejecutar php artisan migrate me sale el error:
[2015-06-13 14:34:05] production.ERROR: excepción ‘Symfony\Component\Debug\Exception\FatalErrorException’ con el mensaje ‘Clase ” no encontrada’ en D:\home\site\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php :328
Seguimiento de la pila:
#0 {main}
¿Cual podría ser el problema? Muchísimas gracias
— editar —
Clase de migración
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUsersTable extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->bigIncrements('id');
$table->string('name', 50);
$table->string('surname', 50);
$table->bigInteger('telephone');
$table->string('email', 50)->unique();
$table->string('username', 50)->unique();
$table->string('password', 50);
$table->boolean('active')->default(FALSE);
$table->string('email_confirmation_code', 6);
$table->enum('notify', ['y', 'n'])->default('y');
$table->rememberToken();
$table->timestamps();
$table->index('username');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('users');
}
}
¿Podría publicar su código de migración?
– Joel Hinz
13 de junio de 2015 a las 15:51
Solo asegúrese de seguir la solución aquí stackoverflow.com/questions/24413929/…
– xazistnr
8 de febrero de 2016 a las 8:54
Umair Ahmed
Para usuarios del cargador automático PSR-4 (composer.json):
Mantenga la carpeta de migraciones dentro classmap array y no lo incluya dentro del objeto psr-4 bajo autoload cabeza. Como la clase principal de las migraciones, Migrator, no admite el espacio de nombres. Por ejemplo;
El primero borra todos los archivos de carga automática compilados.
Segundo borra los cachés de Laravel (opcional)
Third construye el cargador automático para clases con espacio de nombres.
Cuarto optimiza varias partes de su aplicación Laravel y crea el cargador automático para clases sin espacio de nombres.
A partir de este momento, no tendrás que volver a hacer esto y cualquier nueva migración funcionará correctamente.
Esto funciona perfectamente. Pero, ¿podría explicar por qué es necesario?
– Félix Eva
22 de junio de 2017 a las 23:51
@FelixEve bien porque las migraciones no tienen espacios de nombres, por lo que intentar cargarlos automáticamente a través de mecanismos de espacio de nombres (psr-4, etc.) no tiene sentido. La categoría classmap en composer.json es para tales clases. Los siguientes comandos simplemente regeneran todas las asignaciones de carga automática de acuerdo con la nueva configuración.
– Umair Ahmed
23 de junio de 2017 a las 2:08
Después del primer comando que ejecuté, cada vez que intento ejecutar mi proyecto, aparece este error Erroneous data format for unserializing 'Symfony\Component\Routing\CompiledRoute' como lo arreglo??
– Abdalá
21 de abril de 2020 a las 13:14
Lo arreglé !! ¡¡Gracias!! para preocupaciones posteriores! si al ejecutar el primer comando, obtiene el error Erroneous data format for unserializing 'Symfony\Component\Routing\CompiledRoute' esto se puede arreglar con los siguientes pasos: 1. !!! elimine el archivo /bootstrap/cache/routes.php 2. composer require symfony/routing:v4.2.0 3. ruta artesanal de php: el paso de caché podría no completarse correctamente ya que el proyecto podría estar usando otra versión de la ruta de Symfony, pero de todos modos funcionará
– Abdalá
21 de abril de 2020 a las 13:28
mo kawsara
Simplemente asegúrese de que su nombre de archivo de migración sea el mismo que el nombre de su clase.
es decir:
Si el nombre del archivo es:
xxx_151955_create_post_translations_table.php
Entonces la clase debería ser:
CreatePostTranslationsTable
Si está utilizando Laravel 9, no hay necesidad de tal problema ya que la clase de migración se representa así:
return new class extends Migration
¿No debería ser xxx_151955_create_posts_translations_table.php?
– Chris
7 de mayo de 2018 a las 0:59
@CHammond tienes toda la razón, edité mi respuesta =)
– Mo Kawsara
7 mayo 2018 a las 12:54
No puedo creer que perdí tanto tiempo en esto… Olvidé que lo renombré.
– Daniel
28 de julio de 2020 a las 18:05
y recuerda que xxx es una fecha con guión bajo (_), utilicé erróneamente guiones (-) y no podía averiguar qué estaba mal…
– boryn
22 de septiembre de 2020 a las 14:01
Si obtiene el “Error de clase no encontrada” al ejecutar migraciones, intente ejecutar este comando.
Nada funciona. Me sigue dando el error de no encontrado. Comenté los archivos de migración predeterminados (usuarios y restablecimientos de contraseña) para que no me diera un "SQLSTATE[42000]: Syntax error specified key was too long; max key length is 767 bytes (SQL error)" (ambas cosas [Illuminate\Database\QueryException] y [PDOExeption]. ¡Estos archivos son predeterminados! ¿Por qué no puedo usar correctamente estos comandos… también migrar: restablecer y: revertir dame Nothing to rollback. ¿Puede usted ayudar?
Básicamente, todo lo que tiene que hacer es actualizar algunos archivos del compositor. Simplemente ejecuta:
composer dump-autoload
¡Esto actualizará los archivos de carga automática del compositor y luego podrá ejecutar su migración normal y debería funcionar! El mejor.
Creo que es tarde para responder a esta pregunta, pero tal vez esto ayude a alguien.
Si cambió el nombre del archivo de migración, asegúrese de su nombre de clase interno.
Por ejemplo, si cambio el nombre de una migración de 2018_06_10_079999_create_admins_table.php a 2018_06_10_079999_create_managers_table.php por lo que su nombre de clase interna debe cambiar de CreateAdminsTable a CreateManagerTable también.
Al Masum Fahim
también corro en el mismo problema.
La solución para mí fue eliminar el archivo de migración Y eliminar el registro de la tabla de “migraciones” en la base de datos.
Después de eso, corrí
Composer volcado-carga automática
y finalmente pude restablecer/revertir las migraciones.
m2j
Eliminé uno de los archivos de migración. enfrentó el mismo problema, mientras que php artisan migrate:rollback
Entonces lo intenté composer dump-autoload. De nuevo apareció lo mismo.
Restauré el archivo eliminado e intenté composer dump-autoload y php artisan migrate:rollback. Funciona.
me alegro de haber ayudado mi amigo
– m2j
30 de junio de 2016 a las 7:28
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
¿Podría publicar su código de migración?
– Joel Hinz
13 de junio de 2015 a las 15:51
Solo asegúrese de seguir la solución aquí stackoverflow.com/questions/24413929/…
– xazistnr
8 de febrero de 2016 a las 8:54