迁移应用程序不起作用后(找不到基表或视图)

时间:2017-12-13 14:37:34

标签: php laravel-5 migration laravel-5.5

这一切都始于我创建了新的迁移

    /**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('a_delivery_pec_pickup_coef', function(Blueprint $table) {
        $table->primary(['location_id', 'weight_limit'], 'location_id_weight_limit_index');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('a_delivery_pec_pickup_coef', function(Blueprint $table) {
        $table->dropIndex(['location_id_weight_limit_index']);
    });
}

执行命令后

  

php artisan migrate:refresh --seed

并收到错误

  

SQLSTATE [42S02]:找不到基表或视图:1146表'delivery_update。     a_delivery_pec_delivery_ranges'不存在(SQL:select * from a_delive ry_pec_delivery_ranges

然后一些非常奇怪的事情开始了。因为得到同样的错误,我无法执行任何命令。

  

php artisan migrate:rollback

     

php artisan migrate

     

php artisan list

应用程序刚停止工作。主页停止打开。我进入connection.php文件并做了

error_reporting(E_ALL);
ini_set('display_errors', 1);

主页显示相同的错误,但是表格“a_delivery_pec_delivery_ranges”我看到了另一张表。

接下来我手动创建了表“a_delivery_pec_delivery_ranges”,错误消失了。但是当我执行时

  

php artisan migrate

我收到了错误

  

基表或视图已存在:1050表'a_delivery_     pec_delivery_ranges'已存在

现在我处于僵局状态,因为我删除了表'a_delivery_   pec_delivery_ranges'我的应用程序没有处理第一个错误。

但是,如果我添加此表(我也尝试将迁移名称添加到迁移表中)并尝试

  

php artisan migrate

  

php artisan migrate:rollback

我得到'a_delivery_pec_delivery_ranges'已经存在!此外,我尝试在此次迁移中评论“up”-method

 public function up()
{
    Schema::create('a_delivery_pec_delivery_ranges', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('weight');
        $table->float('volume');
        $table->float('length');
    });
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::dropIfExists('a_delivery_pec_delivery_ranges');
}

但是我无法创建这张桌子!

另外我无法理解为什么这张桌子!我依次删除每个表,但没有任何反应。但如果我删除这个表我的应用程序死了!

向上。问题是相关的

2 个答案:

答案 0 :(得分:0)

  • 此迁移的类(和文件)名称是什么?
  • 您是否在另一个迁移文件中使用相同的类名?由于复制和粘贴懒惰,我有一次这个错误^^
  • 您能否显示通过迁移完成的最后一个文件,例如执行哪个种子以及哪一个没有?

很抱歉回答问题,我对于评论感到羞涩6分:(

答案 1 :(得分:0)

问题是我的app / Console / Commands / MyCommand.php在__construct中是下一个代码

  

PecDeliveryRange ::所有();