Laravel добавить NULL в столбце uuid - PullRequest
0 голосов
/ 03 апреля 2020

В настоящее время моя таблица содержит uuid user_id, который не может иметь значение nullable, таблица была перенесена и теперь работает.

Я хочу добавить nullable в столбец, но я где-то читал, что с помощью Метод change () в миграции не поддерживается в uuids?

Опция состояла в том, чтобы перетаскивать столбец в верхнем, а затем в его прежнее состояние, сначала под миграцией, и все нормально, и я могу выполнить откат, как предполагалось, но когда я запускаю мои тесты PHPUnit я получаю следующую ошибку

   General error: 1 Cannot add a NOT NULL column with default 
   value NULL

Миграция для удаления столбца

public function up()
   {
    Schema::table('imports', function (Blueprint $table) {
        $table->dropColumn('user_id');
    });    }

/**
 * Reverse the migrations.
 *
 * @return void
 */
 public function down()
 {
    Schema::table('imports', function (Blueprint $table) {
        $table->uuid('user_id');
     });
 }

В моей исходной миграции ниже я попытался удалить столбец, как указано выше, затем создайте столбец снова, так как он будет обнуляемым, но я получаю ту же ошибку в моих тестах

Миграция для перехода на nullable

  public function up()
  {
    Schema::table('imports', function (Blueprint $table) {
        $table->dropColumn('user_id');
    });

    Schema::table('imports', function (Blueprint $table) {
        $table->uuid('user_id')->nullable()->after('id');
    });
 }

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('imports', function (Blueprint $table) {
        $table->uuid('user_id');
    });
}
...