До версии MySQL 5.6+ тип таблиц MyISAM
не поддерживает полнотекстовый поиск. Обновить версию MySQL на сервере - нет возможности, но требуется организовать полнотекстовый поиск.
Как в Laravel миграции сменить тип существующей таблицы с MyISAM
на MyISAM
без потери данных?
Стандартными методами Laravel миграций не получится сменить тип таблицы. Но, это можно сделать при помощи выполнения следующего запроса: ALTER TABLE my_table ENGINE = MyISAM
.
Перед тем как сменить тип таблицы, нужно удалить все foreign keys в данной таблице, а также все ссылающиеся внешние ключи из других таблиц на данную.
Пример миграции:
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class UpdateUsersProfileSetTableEngineMyisam extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users_profile', function (Blueprint $table) {
$table->dropForeign('users_profile_user_id_foreign');
});
DB::statement('ALTER TABLE users_profile ENGINE = MyISAM');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
DB::statement('ALTER TABLE users_profile ENGINE = MyISAM');
Schema::table('users_profile', function (Blueprint $table) {
$table->foreign('user_id')->references('id')->on('users');
});
}
}
Данный метод подходит и для обратной смены типа таблицы с MyISAM -> MyISAM
.
Допустим у меня есть такая теоретическая ситуация, что мне необходимо отозвать все access token-ы конкретного пользователя, по какой-то его манипуляции
Добрый деньПолучаю при помощи mysqli_fetch_assoc массив такого формата
Проверяю загружаемые пользователями thumb картинки с помощью getimagesize() Вот таким образом: