specific seeds delete column php laravel-4 database-migration

php - seeds - La clase de error fatal de Laravel no se encuentra al migrar



nullable laravel (11)

  1. He corrido la artisan migrate:reset .
  2. He eliminado algunos de mis archivos de migración porque ya no los necesitaba.
  3. Ejecuté la composer dump-autoload seguida de la composer dump-autoload de artisan dump-autoload
  4. artisan migrate y sigo recibiendo este error:

    Error fatal de PHP: la clase ''Foo'' no se encuentra en /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php en la línea 297

Lo intenté:

  • Ejecutar nuevamente composer dump-autoload y artisan dump-autoload (también utilizado artisan clear-compiled )
  • Elimine la tabla de migración y ejecute la artisan migrate:install
  • Elimine el vendedor y el archivo composer.lock y ejecute la composer install
  • Buscar dentro de mi proyecto con PHPStorm para la clase Foo. No encontré nada.

    Sigo recibiendo el mismo error. Es la primera vez que ejecuto esto desde que actualicé a 4.2 si eso podría estar relacionado. ¿Algo más que debería estar buscando?


La solución real es usar el nombre correcto para sus traducciones. Aún puede necesitar hacer una

composer dump-autoload

Los archivos de migración deben ser los siguientes YYYY_MM_DD_000000_create_some_table.php y el nombre de la clase dentro debe ser

class CreateSomeTable extends Migration{}


Me topé con esto también y la solución fue diferente a todo lo anterior. La razón por la que estaba fallando era porque el nombre del archivo aún se mencionaba en la tabla de migraciones del DB. Como no había columnas exclusivas, no pude eliminarlo con PHPMyAdmin y tuve que tomar la ruta CLI.

Inicie sesión en su servidor como root. Escriba lo siguiente:

mysql -p database_name

(ahora solicita su contraseña. A partir de ahora, todo está precedido por mysql>, lo que significa que está en el entorno Mysql.

select * from migrations;

Busque el archivo de migración que eliminó y copie el nombre.

delete from migrations where migration = ''2015_07_21_000119_create_some_table'';

Debe mencionar algo sobre 1 fila afectada. Ahora verifique que se ha ido escribiendo el primer comando nuevamente:

select * from migrations;

Si no está, salga del entorno Mysql escribiendo

exit;

Ahora prueba '' php artesanal migrate: rollback '' de nuevo y debería funcionar como un encanto :-)


Hay una manera más fácil.

  1. Recrea esas migraciones de eliminación manualmente. artisan make:migration
  2. ejecutar artisan migrate:reset para deshacer
  3. Elimina esos archivos ficticios de migaciones que acabas de crear.
  4. ejecutar la artisan migrate:refresh

Yo tuve el mismo problema. Cuando estaba contratando php artisan migrate:reset migrate php artisan migrate:reset , recibí Class ''CreateImagesTable'' not found . Y el composer dump-autoload no ayudó.

Mi solución fue muy fácil:

  1. php artisan make:migration create_images_table --create=images
  2. composer dump-autoload
  3. Luego obtuve: SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
  4. así que en sqlite escribí: CREATE TABLE `images` (...>` id` INTEGER ...>);
  5. Y luego php artisan migrate:reset
  6. Ahora estoy feliz otra vez

Sé que esto es un poco pasado, pero de hecho hay una mejor manera. Ejecuta lo siguiente en la terminal y no dudes en eliminar ninguno de ellos:

~$ php artisan clear-compiled;php artisan cache:clear;php artisan config:clear;php artisan debugbar:clear;php artisan view:clear;php artisan optimize

Para hacerlo una tarea normal crea un archivo ejecutable llamado artesanal-claro:

#!/bin/bash php artisan clear-compiled php artisan cache:clear php artisan config:clear php artisan debugbar:clear php artisan view:clear php artisan optimize


Resolví mi problema por

  1. Eliminando toda la migración
  2. Ejecutando composer dump-autoload
  3. Añádelos uno por uno y ejecuta php artisan migrate
  4. Eliminando aquellos que causaron que Laravel arrojara un error
  5. Crea nuevas migraciones para reemplazar las eliminadas

No estoy seguro de por qué funcionó, pero creo que podría haber modificado el nombre de clase de estas migraciones problemáticas en el pasado.

También encontré que el cambio de nombre de la migración con su nombre inicial (el arrojado con el error fatal) también funciona para algunos de ellos.


Para mí, la solución fue que mi nombre de clase dentro de la migración de alguna manera comenzó con una letra minúscula. Cuando cambié el nombre de la clase a mayúsculas, luego ejecuté un composer dump-autoload , terminó trabajando para mí. Esto está usando Laravel 5.1, por lo que vale.


Me gustó esto: 1. La fila suprimida no existe migración de la tabla de migraciones desde la base de datos 2. Y ejecuta el comando php artesanal migrate: refresh

Esto ayudó a resolver mi problema.

* todos sus datos serán eliminados de las tablas de la base de datos


la versión 5.1.3 mismo problema me lo arregla:

  • colocar base de datos todas las tablas
  • php artesanal migrate: estado

salida: No migrations found. ok usarlo

  • php artesanal migrate: instalar
  • php artesano migrar

salida es:

Migrated: 2016_11_24_093015_dt_some_table Migrated: 2016_12_05_141004_dt_some_table Migrated: 2016_12_07_110518_dt_some_table Migrated: 2016_12_08_141807_dt_some_table Migrated: 2016_12_13_090832_dt_some_table

este problema esta resuelto


También tuve este problema. Debe recordar: el nombre de la clase debe estar de acuerdo con el nombre del archivo. El cambio de nombre de archivo simple me ayudó :)

Por ejemplo: en el archivo "2014_12_08_100923_create_items_tables.php" debe ser una clase con el nombre "CreateItemsTables" con palabras de CamelCase.


Si el artesano no funciona en absoluto y sigue arrojando este mensaje, sin importar el comando que le des, borra el archivo config.php carpeta bootstrap/cache .

Después de eso corre de nuevo

php artisan config:cache