FEATURE: change collation of all non-utf8_unicode_ci tables

This commit is contained in:
Michal Kváček
2016-08-01 23:19:13 +02:00
parent 0d5e6d4133
commit 7abd60e785
@@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\DB;
class ChangeCollationOfTables extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
$data = DB::select('
SELECT
CONCAT("ALTER TABLE `", TABLE_NAME,"` CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci") AS mySQL
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="' . env('DB_DATABASE') . '"
AND TABLE_COLLATION!="utf8_unicode_ci"
AND TABLE_TYPE="BASE TABLE"
');
DB::statement('SET foreign_key_checks = 0');
foreach ($data as $query) {
DB::statement($query->mySQL);
}
DB::statement('SET foreign_key_checks = 1');
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
// nothing to do
}
}