\Blade::directive('icon', function($expression) {
return "<?php echo icon($expression); ?>";
});
+
+ // Allow longer string lengths after upgrade to utf8mb4
+ \Schema::defaultStringLength(191);
}
/**
}
}
+$mysql_host = env('DB_HOST', 'localhost');
+$mysql_host_exploded = explode(':', $mysql_host);
+$mysql_port = env('DB_PORT', 3306);
+if (count($mysql_host_exploded) > 0) {
+ $mysql_host = $mysql_host_exploded[0];
+ $mysql_port = intval($mysql_host_exploded[1]);
+}
+
return [
/*
'mysql' => [
'driver' => 'mysql',
- 'host' => env('DB_HOST', 'localhost'),
+ 'host' => $mysql_host,
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
- 'charset' => 'utf8',
- 'collation' => 'utf8_unicode_ci',
+ 'port' => $mysql_port,
+ 'charset' => 'utf8mb4',
+ 'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => false,
],
--- /dev/null
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class UpdateDbEncodingToUt8mb4 extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ $database = DB::getDatabaseName();
+ $tables = DB::select('SHOW TABLES');
+ $pdo = DB::getPdo();
+ $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
+ $pdo->exec('ALTER DATABASE '.$database.' CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+ $key = 'Tables_in_' . $database;
+ foreach ($tables as $table) {
+ $tableName = $table->$key;
+ $pdo->exec('ALTER TABLE '.$tableName.' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci');
+ }
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ $database = DB::getDatabaseName();
+ $tables = DB::select('SHOW TABLES');
+ $pdo = DB::getPdo();
+ $pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
+ $pdo->exec('ALTER DATABASE '.$database.' CHARACTER SET utf8 COLLATE utf8_unicode_ci');
+ $key = 'Tables_in_' . $database;
+ foreach ($tables as $table) {
+ $tableName = $table->$key;
+ $pdo->exec('ALTER TABLE '.$tableName.' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci');
+ }
+ }
+}