TLDR;
Есть ли в SQLite лучший или альтернативный способ использования "set"?
Полная информация
Я пытаюсь запустить миграцию в Laravel, которая отлично работает на MySQL. Однако всякий раз, когда я пытаюсь выполнить ту же миграцию в тестовой базе данных на SQLite, я сталкиваюсь со следующей ошибкой:
In Macroable.php line 103:
Method Illuminate\Database\Schema\Grammars\SQLiteGrammar::typeSet does not exist.
Я понимаю, что эта ошибка говорит о том, что «набор» не существует в SQLite. Чтобы это исправить, я просто изменил «set» на «string». Однако это неоптимально, так как я хотел бы ограничить это поле указанными c значениями.
В SQLite есть ли лучший или альтернативный способ использования "set"?
Пример:
Вот моя миграция, которая работает с MySQL, но выдает ошибку typeSet, как показано выше:
Schema::create('subscribers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->set('test', ['one', 'two', 'three']);
$table->timestamps();
});
Вот мое временное исправление для SQLite база данных:
Schema::create('subscribers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('test', 255);
$table->timestamps();
});
Спасибо всем за ваши комментарии и предложения!
(Спасибо @Dilip за ваш ответ! Для всех, кто видит это, если вы хотите узнать больше о разнице между ENUM и SET, этот ответ также был полезен: MySQL enum vs. set )