Я переключаюсь на первичные ключи UUID, используя пакет Ramsey \ Uuid, и он отлично работает. Единственная проблема, с которой до сих пор сталкивались, это когда я запускаю php artisan migrate: откат, чтобы изменить его обратно на исходный идентификатор первичного ключа:
Освещение \ Database \ QueryException: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 У вас ошибка в синтаксисе SQL; обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'CHARACTER SET utf8mb4 NOT NULL COLLATE utf8mb4_unicode_ci
' в строке 1 (SQL: ALTER TABLE model_has_roles CHANGE model_id model_id BIGINT UNSIGNED AUTO_INCREMENT CHARACTER SET utfmbmb4 NOT NULL COLLATE utf8mb4_unicode_ci
)
Мой код:
public function up()
{
if(!Type::hasType('uuid')) {
Type::addType('uuid', 'Ramsey\Uuid\Doctrine\UuidType');
}
Schema::table('model_has_roles', function (Blueprint $table) {
$table->uuid('model_id')->change();
});
}
public function down()
{
Schema::table('model_has_roles', function (Blueprint $table) {
$table->bigIncrements('model_id')->change();
});
}
Что я делаю не так?