mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-28 07:04:05 +08:00
Updated default encoding and added conversion migration.
Also updated how DB port is defined so that the DB_PORT env var can be used or it can be take from the host name. Fixes #405
This commit is contained in:
parent
7293ad7b24
commit
005f0eb4fc
app/Providers
config
database/migrations
@ -23,6 +23,9 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
\Blade::directive('icon', function($expression) {
|
\Blade::directive('icon', function($expression) {
|
||||||
return "<?php echo icon($expression); ?>";
|
return "<?php echo icon($expression); ?>";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Allow longer string lengths after upgrade to utf8mb4
|
||||||
|
\Schema::defaultStringLength(191);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,6 +16,14 @@ if (env('REDIS_SERVERS', false)) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$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 [
|
return [
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -70,12 +78,13 @@ return [
|
|||||||
|
|
||||||
'mysql' => [
|
'mysql' => [
|
||||||
'driver' => 'mysql',
|
'driver' => 'mysql',
|
||||||
'host' => env('DB_HOST', 'localhost'),
|
'host' => $mysql_host,
|
||||||
'database' => env('DB_DATABASE', 'forge'),
|
'database' => env('DB_DATABASE', 'forge'),
|
||||||
'username' => env('DB_USERNAME', 'forge'),
|
'username' => env('DB_USERNAME', 'forge'),
|
||||||
'password' => env('DB_PASSWORD', ''),
|
'password' => env('DB_PASSWORD', ''),
|
||||||
'charset' => 'utf8',
|
'port' => $mysql_port,
|
||||||
'collation' => 'utf8_unicode_ci',
|
'charset' => 'utf8mb4',
|
||||||
|
'collation' => 'utf8mb4_unicode_ci',
|
||||||
'prefix' => '',
|
'prefix' => '',
|
||||||
'strict' => false,
|
'strict' => false,
|
||||||
],
|
],
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
<?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');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user