我的Laravel设置正在发生一些奇怪的事情。我创建了一些迁移文件,并且在创建每个迁移文件之后运行php artisan migrate
时,它们已成功运行并且表已在数据库中创建。现在,如果我想运行php artisan migrate:refresh --seed
,它就无法回滚其中一个迁移,因为它表示迁移文件不存在。
这是错误:
这是我的迁移文件:
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateAssessmentsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('assessments', function (Blueprint $table) {
$table->increments('id');
//TODO - Complete information for this table
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('assessments');
}
}
甚至更奇怪的是,我不得不重新创建所有迁移,因为它随机地没有创建迁移中列出的某些表。
以前有人遇到过这个问题吗?任何帮助都非常感谢。
[UPDATE]
过了一会儿,我意识到这不是来自Laravel。出于某种原因,我的家园没有查看那些文件,尽管有。如果我通过SSH(流浪盒内的那个)访问该文件夹,则文件不存在。如果我去真正的文件夹,它就在那里。由于某种原因,该框未正确同步文件。 甚至更奇怪的是,我可以访问和编辑VMB内的文件,但它不会列出它,并且在运行迁移时不会考虑到这一点。在这里,我创建了一个screen-recording showing the problem。
[更新2]
刚录制到更多视频。这真的很奇怪(除非我遗漏了什么)。
答案 0 :(得分:1)
MacOS High Sierra和Vagrant似乎存在问题。为了解决这个问题,我必须应用此workaround。
希望这会为我遇到同样问题的人节省一些时间。