Я пытаюсь заполнить базу данных с помощью сеялки.
Я получаю сообщение об ошибке:
SQLSTATE [23000]: нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (forge
. projects
, CONSTRAINT projects_status_id_foreign
ИНОСТРАННЫЙ КЛЮЧ (status_id
) ССЫЛКИ status_projects
(id
))
Вот мои миграции:
public function up()
{
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('subtitle');
$table->longText('main_data');
$table->string('budget_description');
$table->integer('owner_id')->unsigned();
$table->integer('category_id')->unsigned();
$table->integer('deadline_id')->unsigned();
$table->integer('city_id')->unsigned();
$table->string('website')->nullable()->default('null'); //reference
$table->decimal('budget', 18, 4);
$table->integer('status_id')->unsigned()->default('1');
$table->dateTime('started_at')->nullable();
$table->integer('account_id')->unsigned()->default(1);
$table->timestamps();
$table->softDeletes();
});
}
Это миграциядля статуса:
public function up()
{
Schema::create('status_projects', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
});
}
Несколько человек работают над этим проектом, поэтому я создал дополнительную миграцию:
public function up()
{
Schema::table('projects', function (Blueprint $table) {
$table->unsignedInteger('status_id');
$table->foreign('status_id')
->references('id')->on('status_projects')
->onDelete('cascade');
});
}
Теперь, когда я пытаюсь выполнить команду
php artisan migrate
Я получаю сообщение об ошибке:
SQLSTATE [42S21]: Столбец уже существует: 1060 Повторяющееся имя столбца «status_id» (SQL: изменить таблицу projects
добавить status_id
int без знака без нуля)
Как я могу это исправить?