#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