Laravel – миграция для добавления свойства, допускающего значение NULL, в существующий столбец таблицы ⇐ Php
Laravel – миграция для добавления свойства, допускающего значение NULL, в существующий столбец таблицы
Я начал писать небольшой личный проект на Laravel 10. Проблема у меня следующая:
[*]У меня есть таблица пользователей, и внутри нее есть внешний UUID — role_id. [*]Я хочу добавить значение NULL в этот столбец, не удаляя таблицу. [*]Я создал новую миграцию, чтобы внести изменения. [*]Установил пакет Doctor/dbal, чтобы иметь возможность (теоретически) изменить столбец. [*]Код, который у меня есть в миграции:
публичная функция up(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable()->constrained('roles')->change(); }); } /** * Отмените миграцию. */ публичная функция down(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change(); }); } Но когда я запускаю миграцию php artisan, я получаю следующую ошибку: SQLSTATE [42S21]: Столбец уже существует: 1060 Повторяющееся имя столбца 'role_id' (Соединение: mysql, SQL: изменить таблицу, пользователи добавляют role_id char(36) null) .
Был бы очень признателен за любые советы, как правильно сделать переделку колонки.
Я начал писать небольшой личный проект на Laravel 10. Проблема у меня следующая:
[*]У меня есть таблица пользователей, и внутри нее есть внешний UUID — role_id. [*]Я хочу добавить значение NULL в этот столбец, не удаляя таблицу. [*]Я создал новую миграцию, чтобы внести изменения. [*]Установил пакет Doctor/dbal, чтобы иметь возможность (теоретически) изменить столбец. [*]Код, который у меня есть в миграции:
публичная функция up(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable()->constrained('roles')->change(); }); } /** * Отмените миграцию. */ публичная функция down(): void { Schema::table('users', function (Blueprint $table) { $table->foreignUuid('role_id')->nullable(false)->constrained('roles')->change(); }); } Но когда я запускаю миграцию php artisan, я получаю следующую ошибку: SQLSTATE [42S21]: Столбец уже существует: 1060 Повторяющееся имя столбца 'role_id' (Соединение: mysql, SQL: изменить таблицу, пользователи добавляют role_id char(36) null) .
Был бы очень признателен за любые советы, как правильно сделать переделку колонки.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение