Столбец ‘tax_id’ не может быть NOT NULL в Laravel

#php #laravel #migration

#php #laravel #миграция

Вопрос:

Я работаю в проекте, где таблица имеет внешний ключ с именем tax_id, проблема в том, что в какой-то момент была создана другая миграция, чтобы изменить tax_id значение на nullable.

 Schema::table('products', function (Blueprint $table) {
    $table->unsignedInteger('tax_id')->nullable()->change();
});
  

Я понимаю это после того, как я написал другие миграции и попытался их запустить, это выдает Column 'tax_id' cannot be NOT NULL, похоже, что в «проекте» была запущена миграция, поэтому я не могу просто удалить файл, как я могу запустить свои миграции без ошибки? Я пытался удалить внешний ключ, но ничего не сработало.

Ответ №1:

Я предполагаю, что вы работаете с MySQL InnoDB, потому что вы не указали тип базы данных / движок.

Вы могли бы попробовать разные подходы:

1) Если вы спешите, отключите внешние ключи, выполните обновление, включите внешний ключ. Затем вы, конечно, должны исправить проблему.

2) Добавьте set tax_id в » где tax_id равен нулю, а затем выполните миграцию

3) Самостоятельно документируйте механизм базы данных и реализуйте правильное решение

Giacomo