Я использую Laravel 5.2.45 на сервере PHP 5.6.16.
При использовании команды php artisan migrate: refresh / migrate: reset, я получаю эту ошибку:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'AddSourceInClotureTable' not found
Обратите внимание, что миграция и миграция: откат работает.
Я пробовал поискать в Google (ни одного результата для: AddSourceInClotureTable) и пробовал с обновлением композитора, dumpauto композитора, cache: clear и, вероятно, может выполнить любую отдельную команду.
Вот один файл миграции, который у меня есть в проекте:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCommandTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('commands', function (Blueprint $table) {
$table->increments('id');
$table->integer("provider");
$table->string("number")->unique();;
$table->date("delivered_at");
$table->date("ordered_at");
$table->integer("buyer");
$table->boolean("deliver_mode");
$table->integer("payment");
$table->timestamps();
});
Schema::create('payment', function (Blueprint $table) {
$table->increments('id');
$table->string("name");
$table->timestamps();
});
Schema::create('transports', function (Blueprint $table) {
$table->increments('id');
$table->string("name", 255)->unique();
$table->string("code", 255)->unique();
$table->integer("carrier");
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::drop('commands');
Schema::drop('payment');
Schema::drop('transports');
}
}
А вот и мой композитор.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"barryvdh/laravel-ide-helper": "^2.1",
"laravelcollective/html": "5.2.*",
"barryvdh/laravel-dompdf": "0.6.*",
"caffeinated/flash": "~2.0"},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"symfony/css-selector": "2.8.*|3.0.*",
"symfony/dom-crawler": "2.8.*|3.0.*"},
"autoload": {
"classmap": [
"database"],
"psr-4": {
"App\\": "app/"}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"]
},
"scripts": {
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""],
"post-create-project-cmd": [
"php artisan key:generate"],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"]
},
"config": {
"preferred-install": "dist"}
}
Есть идеи ?
Вы должны всегда бежать composer dumpauto
или это псевдоним composer dump-autoload
команда после каждого migrate
выполнение команды:
Если вы получаете сообщение об ошибке «класс не найден» при запуске миграции, попробуйте запустить
composer dump-autoload
команду и повторно введите команду переноса.
Этот проект был дублирован от предыдущего, и таблица миграции не была переименована. Человеческая ошибка здесь. Как только было дано новое имя, все ошибки исчезли.