mirror of
https://github.com/moparisthebest/wallabag
synced 2024-11-27 03:12:21 -05:00
Convert the MySQL charset to utf8mb4 to support the full range of unicode characters
This commit is contained in:
parent
a15108e65b
commit
b668db242d
@ -24,15 +24,17 @@ class Database {
|
|||||||
switch (STORAGE) {
|
switch (STORAGE) {
|
||||||
case 'sqlite':
|
case 'sqlite':
|
||||||
// Check if /db is writeable
|
// Check if /db is writeable
|
||||||
if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) {
|
if ( !is_writable(STORAGE_SQLITE) || !is_writable(dirname(STORAGE_SQLITE))) {
|
||||||
die('An error occured: "db" directory must be writeable for your web server user!');
|
die('An error occured: "db" directory must be writeable for your web server user!');
|
||||||
}
|
}
|
||||||
$db_path = 'sqlite:' . STORAGE_SQLITE;
|
$db_path = 'sqlite:' . STORAGE_SQLITE;
|
||||||
$this->handle = new PDO($db_path);
|
$this->handle = new PDO($db_path);
|
||||||
break;
|
break;
|
||||||
case 'mysql':
|
case 'mysql':
|
||||||
$db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
|
$db_path = 'mysql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB . ';charset=utf8mb4';
|
||||||
$this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD);
|
$this->handle = new PDO($db_path, STORAGE_USER, STORAGE_PASSWORD, array(
|
||||||
|
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
|
||||||
|
));
|
||||||
break;
|
break;
|
||||||
case 'postgres':
|
case 'postgres':
|
||||||
$db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
|
$db_path = 'pgsql:host=' . STORAGE_SERVER . ';dbname=' . STORAGE_DB;
|
||||||
|
@ -101,12 +101,14 @@ else if (isset($_POST['install'])) {
|
|||||||
$content = file_get_contents('inc/poche/config.inc.php');
|
$content = file_get_contents('inc/poche/config.inc.php');
|
||||||
|
|
||||||
if ($_POST['db_engine'] == 'mysql') {
|
if ($_POST['db_engine'] == 'mysql') {
|
||||||
$db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'];
|
$db_path = 'mysql:host=' . $_POST['mysql_server'] . ';dbname=' . $_POST['mysql_database'] . ';charset=utf8mb4';
|
||||||
$content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['mysql_server']."');", $content);
|
$content = str_replace("define ('STORAGE_SERVER', 'localhost');", "define ('STORAGE_SERVER', '".$_POST['mysql_server']."');", $content);
|
||||||
$content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['mysql_database']."');", $content);
|
$content = str_replace("define ('STORAGE_DB', 'poche');", "define ('STORAGE_DB', '".$_POST['mysql_database']."');", $content);
|
||||||
$content = str_replace("define ('STORAGE_USER', 'poche');", "define ('STORAGE_USER', '".$_POST['mysql_user']."');", $content);
|
$content = str_replace("define ('STORAGE_USER', 'poche');", "define ('STORAGE_USER', '".$_POST['mysql_user']."');", $content);
|
||||||
$content = str_replace("define ('STORAGE_PASSWORD', 'poche');", "define ('STORAGE_PASSWORD', '".$_POST['mysql_password']."');", $content);
|
$content = str_replace("define ('STORAGE_PASSWORD', 'poche');", "define ('STORAGE_PASSWORD', '".$_POST['mysql_password']."');", $content);
|
||||||
$handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password']);
|
$handle = new PDO($db_path, $_POST['mysql_user'], $_POST['mysql_password'], array(
|
||||||
|
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4',
|
||||||
|
));
|
||||||
|
|
||||||
$sql_structure = file_get_contents('install/mysql.sql');
|
$sql_structure = file_get_contents('install/mysql.sql');
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ CREATE TABLE IF NOT EXISTS `config` (
|
|||||||
`name` varchar(255) NOT NULL,
|
`name` varchar(255) NOT NULL,
|
||||||
`value` varchar(255) NOT NULL,
|
`value` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `entries` (
|
CREATE TABLE IF NOT EXISTS `entries` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS `entries` (
|
|||||||
`content` blob NOT NULL,
|
`content` blob NOT NULL,
|
||||||
`user_id` int(11) NOT NULL,
|
`user_id` int(11) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `users` (
|
CREATE TABLE IF NOT EXISTS `users` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS `users` (
|
|||||||
`name` varchar(255) NOT NULL,
|
`name` varchar(255) NOT NULL,
|
||||||
`email` varchar(255) NOT NULL,
|
`email` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `users_config` (
|
CREATE TABLE IF NOT EXISTS `users_config` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
@ -31,13 +31,13 @@ CREATE TABLE IF NOT EXISTS `users_config` (
|
|||||||
`name` varchar(255) NOT NULL,
|
`name` varchar(255) NOT NULL,
|
||||||
`value` varchar(255) NOT NULL,
|
`value` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `tags` (
|
CREATE TABLE IF NOT EXISTS `tags` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
`value` varchar(255) NOT NULL,
|
`value` varchar(255) NOT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `tags_entries` (
|
CREATE TABLE IF NOT EXISTS `tags_entries` (
|
||||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||||
@ -46,4 +46,4 @@ CREATE TABLE IF NOT EXISTS `tags_entries` (
|
|||||||
FOREIGN KEY(entry_id) REFERENCES entries(id) ON DELETE CASCADE,
|
FOREIGN KEY(entry_id) REFERENCES entries(id) ON DELETE CASCADE,
|
||||||
FOREIGN KEY(tag_id) REFERENCES tags(id) ON DELETE CASCADE,
|
FOREIGN KEY(tag_id) REFERENCES tags(id) ON DELETE CASCADE,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
Loading…
Reference in New Issue
Block a user