Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel migrations: Class "not found"

I am deploying a Laravel barebone project to Microsoft Azure, but whenever I try to execute php artisan migrate I get the error:

[2015-06-13 14:34:05] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Class '' not found' in D:\home\site\vendor\laravel\framework\src\Illuminate\Database\Migrations\Migrator.php:328

Stack trace:

 #0 {main}   

What could be the problem? Thank you very much

-- edit --

Migration Class

<?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');     } } 
like image 324
Washery Avatar asked Jun 13 '15 14:06

Washery


1 Answers

For PSR-4 Auto Loader Users (composer.json):

Keep the migrations folder inside classmap array and do not include it inside psr-4 object under autoload head. As migrations' main class Migrator doesn't support namespacing. For example;

"autoload": {     "classmap": [         "app/database/migrations"     ],     "psr-4": {         "Acme\\controllers\\": "app/controllers"     } } 

Then run:

php artisan clear-compiled  php artisan optimize:clear composer dump-autoload php artisan optimize 
  • First one clears all compiled autoload files.
  • Second clears Laravel caches (optional)
  • Third builds the autoloader for namespaced classes.
  • Fourth optimizes various parts of your Laravel app and builds the autoloader for non-namespaced classes.

From this time on wards, you will not have to do this again and any new migrations will work correctly.

like image 130
Umair Ahmed Avatar answered Sep 29 '22 04:09

Umair Ahmed