artisan migrate:reset
. composer dump-autoload
suivi de artisan dump-autoload
J'ai couru artisan migrate
et je continue à avoir cette erreur:
PHP Erreur fatale: La classe 'Foo' ne figure pas dans /vagrant/LaravelBackend/vendor/laravel/framework/src/Illuminate/Database/Migrations/Migrator.php à la ligne 297
J'ai essayé de:
composer dump-autoload
et artisan dump-autoload
(également utilisé artisan clear-compiled
)artisan migrate:install
composer install
Rechercher dans mon projet avec PHPStorm pour la classe Foo. Je n'ai rien trouvé.
Je continue à avoir la même erreur. C'est la première fois que je lance ceci depuis que j'ai mis à jour à la version 4.2 si cela peut être lié. Quelque chose d'autre que je devrais rechercher?
J'ai résolu mon problème par
composer dump-autoload
php artisan migrate
Je ne sais pas pourquoi cela a fonctionné, mais je suppose que j'ai peut-être modifié le nom de classe de ces migrations problématiques par le passé.
J'ai également constaté que renommer la migration avec son nom initial (celui renvoyé avec l'erreur fatale) fonctionnait également pour certaines d'entre elles.
J'ai eu ce problème aussi . Il faut se rappeler: le nom de la classe doit être en conformité avec le nom de fichier . Renommer un fichier simple m'a aidé :)
Par exemple: dans le fichier "2014_12_08_100923_create_items_tables.php" doit être la classe portant le nom "CreateItemsTables" avec des mots CamelCase.
J'ai couru dans cet aswell et la solution était différente de tout ce qui précède. La raison de son échec est que le nom du fichier était toujours mentionné dans le tableau des migrations de la base de données. Comme il n'y avait pas de colonnes uniques, je ne pouvais pas le supprimer avec PHPMyAdmin et je devais suivre la route de la CLI.
Connectez-vous à votre serveur en tant que root . Tapez ce qui suit:
mysql -p database_name
(il demande maintenant votre mot de passe. À partir de maintenant, tout est précédé de mysql> , ce qui signifie simplement que vous vous trouvez dans l'environnement Mysql.
select * from migrations;
Recherchez le fichier de migration que vous avez supprimé et copiez le nom.
delete from migrations where migration = '2015_07_21_000119_create_some_table';
Il convient de mentionner quelque chose sur 1 ligne affectée. Maintenant, vérifiez qu'il est parti en tapant à nouveau la première commande:
select * from migrations;
Si c'est parti, quittez l'environnement Mysql en tapant
exit;
Maintenant, essayez ' php artisan migrate: rollback ' à nouveau et cela devrait fonctionner comme un charme :-)
Il y a un moyen plus facile.
artisan make:migration
artisan migrate:reset
pour restaurer artisan migrate:refresh
Je sais que c'est un peu passé, mais il existe une meilleure façon de faire. Exécutez les opérations suivantes dans le terminal et sentez-vous libre de les supprimer:
~$ php artisan clear-compiled;php artisan cache:clear;php artisan config:clear;php artisan debugbar:clear;php artisan view:clear;php artisan optimize
Pour ce faire, créez un fichier exécutable nommé artisan-clear:
#!/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
La solution réelle consiste à utiliser le nom correct pour vos traductions. Vous devrez peut-être encore faire un
composer dump-autoload
Les fichiers de migration doivent être les suivants YYYY_MM_DD_000000_create_some_table.php
class CreateSomeTable extends Migration{}
version 5.1.3 même problème, corrigez-le moi:
sortie: No migrations found.
ok l'utiliser
la sortie est:
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
ce problème est résolu
Pour moi, la solution a été que le nom de ma classe à l’intérieur de la migration ait commencé par une lettre minuscule. Lorsque j'ai changé le nom de la classe en majuscule, puis que j'ai exécuté un composer dump-autoload
, cela a fini par fonctionner pour moi. Ceci utilise Laravel 5.1, pour ce que ça vaut.
J'ai aimé ceci: 1. Ligne supprimée non existante migration de la table des migrations à partir de la base de données 2. Et lancez la commande php artisan migrate: refresh
Cela a aidé à résoudre mon problème.
* toutes vos données seront supprimées des tables de la base de données
Si artisan ne fonctionne pas du tout et continue à vous envoyer ce message, peu importe la commande que vous donnez, supprimez le fichier config.php
du dossier bootstrap/cache
.
Après cela courir à nouveau
php artisan config:cache
J'ai eu le même problème. Quand je cherchais php artisan migrate:reset
, j'ai eu Class 'CreateImagesTable' not found
. Et composer dump-autoload
n'a pas aidé.
Ma solution était très simple:
php artisan make:migration create_images_table --create=images
composer dump-autoload
SQLSTATE[HY000]: General error: 1 no such table: images (SQL: drop table "images")
php artisan migrate:reset