我在Laravel 5.6中的迁移存在问题。
这是一个问题:
我在Laravel中的代码:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateCompaniesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('companies', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->integer('user_id');
$table->foreign('user_id')->references('id')->on('users');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('companies');
}
}
我需要做什么?
答案 0 :(得分:2)
该表在消息中告诉您,该表已经存在,您可能需要先删除它,或者检查您在ENV文件中使用的数据库名称是否正确。还要检查您在上一次迁移中没有创建表公司。
如果您想将字段添加到现有表中,则不需要 create 方法,但是:
Schema::table("companies", function (Blueprint $table) {
// The fields you need
});
对于外键,使用unsignedInteger作为数据类型也更安全
答案 1 :(得分:0)
如错误消息中所示,“ companies”表已存在。 您可以使用以下命令来解决它。
php artisan migration:rollback
php artisan migration:reset
请参阅laravel文档以获取更多详细信息。
答案 2 :(得分:0)
您可以使用以下命令删除每个表并进行迁移,然后再备份sql,因为它会删除所有数据
php artisan migrate:fresh