Use utf8mb4
This commit is contained in:
parent
2b73ed7def
commit
e9dadb188a
9 changed files with 42 additions and 42 deletions
|
@ -92,17 +92,17 @@ function api_key_management_hook_activate()
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS `ams_api_keys` (
|
CREATE TABLE IF NOT EXISTS `ams_api_keys` (
|
||||||
`SNo` int(10) NOT NULL AUTO_INCREMENT,
|
`SNo` int(10) NOT NULL AUTO_INCREMENT,
|
||||||
`User` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
`User` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
`FrName` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
`FrName` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
`UserType` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL,
|
`UserType` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
`UserCharacter` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
|
`UserCharacter` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
`ExpiryDate` date DEFAULT NULL,
|
`ExpiryDate` date DEFAULT NULL,
|
||||||
`AccessToken` text COLLATE utf8_unicode_ci DEFAULT NULL,
|
`AccessToken` text COLLATE utf8mb4_unicode_ci DEFAULT NULL,
|
||||||
`AddedOn` datetime DEFAULT NULL,
|
`AddedOn` datetime DEFAULT NULL,
|
||||||
`Items` text COLLATE utf8_unicode_ci,
|
`Items` text COLLATE utf8mb4_unicode_ci,
|
||||||
PRIMARY KEY (`SNo`),
|
PRIMARY KEY (`SNo`),
|
||||||
KEY `User` (`User`)
|
KEY `User` (`User`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=1 ;
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Constraints for table `ams_api_keys`
|
-- Constraints for table `ams_api_keys`
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
* `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
* `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
* `source` text,
|
* `source` text,
|
||||||
* PRIMARY KEY (`name`)
|
* PRIMARY KEY (`name`)
|
||||||
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
|
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;</pre>
|
||||||
*
|
*
|
||||||
* Demo data:
|
* Demo data:
|
||||||
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
|
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
* `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
* `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
* `source` text,
|
* `source` text,
|
||||||
* PRIMARY KEY (`name`)
|
* PRIMARY KEY (`name`)
|
||||||
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8;</pre>
|
* ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;</pre>
|
||||||
*
|
*
|
||||||
* Demo data:
|
* Demo data:
|
||||||
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
|
* <pre>INSERT INTO `templates` (`name`, `modified`, `source`) VALUES ('test.tpl', "2010-12-25 22:00:00", '{$x="hello world"}{$x}');</pre>
|
||||||
|
|
|
@ -134,7 +134,7 @@ class ryDB {
|
||||||
global $_RYZOM_API_CONFIG;
|
global $_RYZOM_API_CONFIG;
|
||||||
$this->db_name = $db_name;
|
$this->db_name = $db_name;
|
||||||
$this->db = new ServerDatabase(RYAPI_WEBDB_HOST, RYAPI_WEBDB_LOGIN, RYAPI_WEBDB_PASS, $db_name);
|
$this->db = new ServerDatabase(RYAPI_WEBDB_HOST, RYAPI_WEBDB_LOGIN, RYAPI_WEBDB_PASS, $db_name);
|
||||||
$this->db->query("SET NAMES utf8");
|
$this->db->query("SET NAMES utf8mb4");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getInstance($db_name) {
|
public static function getInstance($db_name) {
|
||||||
|
@ -480,7 +480,7 @@ class ryDB {
|
||||||
$c = "Updating DB Structure...\n";
|
$c = "Updating DB Structure...\n";
|
||||||
foreach ($defs as $dbname => $tables) {
|
foreach ($defs as $dbname => $tables) {
|
||||||
$db = new ServerDatabase(RYAPI_WEBDB_HOST, RYAPI_WEBDB_LOGIN, RYAPI_WEBDB_PASS, $dbname);
|
$db = new ServerDatabase(RYAPI_WEBDB_HOST, RYAPI_WEBDB_LOGIN, RYAPI_WEBDB_PASS, $dbname);
|
||||||
$db->query("SET NAMES utf8");
|
$db->query("SET NAMES utf8mb4");
|
||||||
$c .= "\n Selected DB '$dbname'\n";
|
$c .= "\n Selected DB '$dbname'\n";
|
||||||
foreach ($tables as $table => $sql)
|
foreach ($tables as $table => $sql)
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,7 +62,7 @@ function validate_writable($continue, $path) {
|
||||||
function create_use_database($continue_r, $con, $database) {
|
function create_use_database($continue_r, $con, $database) {
|
||||||
$continue = $continue_r;
|
$continue = $continue_r;
|
||||||
if ($continue) {
|
if ($continue) {
|
||||||
$sql = "CREATE DATABASE `" . mysqli_real_escape_string($con, $database) . "` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;";
|
$sql = "CREATE DATABASE `" . mysqli_real_escape_string($con, $database) . "` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;";
|
||||||
if (mysqli_query($con, $sql)) {
|
if (mysqli_query($con, $sql)) {
|
||||||
printalert("success", "Database <em>" . $database . "</em> created");
|
printalert("success", "Database <em>" . $database . "</em> created");
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -8,7 +8,7 @@ class DATABASE_CONFIG {
|
||||||
'login' => 'webtt',
|
'login' => 'webtt',
|
||||||
'password' => 'webtt77',
|
'password' => 'webtt77',
|
||||||
'database' => 'webtt2',
|
'database' => 'webtt2',
|
||||||
'encoding' => 'utf8'
|
'encoding' => 'utf8mb4'
|
||||||
);
|
);
|
||||||
var $raw_files = array(
|
var $raw_files = array(
|
||||||
'datasource' => 'RawFilesSource',
|
'datasource' => 'RawFilesSource',
|
||||||
|
|
|
@ -872,8 +872,8 @@ class CakeSchemaTest extends CakeTestCase {
|
||||||
'author_id' => array('column' => 'author_id'),
|
'author_id' => array('column' => 'author_id'),
|
||||||
),
|
),
|
||||||
'tableParameters' => array(
|
'tableParameters' => array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_general_ci',
|
'collate' => 'utf8mb4_general_ci',
|
||||||
'engine' => 'MyISAM'
|
'engine' => 'MyISAM'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
@ -885,8 +885,8 @@ class CakeSchemaTest extends CakeTestCase {
|
||||||
'PRIMARY' => array('column' => 'id', 'unique' => true),
|
'PRIMARY' => array('column' => 'id', 'unique' => true),
|
||||||
),
|
),
|
||||||
'tableParameters' => array(
|
'tableParameters' => array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_general_ci'
|
'collate' => 'utf8mb4_general_ci'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -898,8 +898,8 @@ class CakeSchemaTest extends CakeTestCase {
|
||||||
),
|
),
|
||||||
'change' => array(
|
'change' => array(
|
||||||
'tableParameters' => array(
|
'tableParameters' => array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_general_ci',
|
'collate' => 'utf8mb4_general_ci',
|
||||||
'engine' => 'MyISAM'
|
'engine' => 'MyISAM'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -910,8 +910,8 @@ class CakeSchemaTest extends CakeTestCase {
|
||||||
),
|
),
|
||||||
'change' => array(
|
'change' => array(
|
||||||
'tableParameters' => array(
|
'tableParameters' => array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_general_ci',
|
'collate' => 'utf8mb4_general_ci',
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -376,11 +376,11 @@ class DboMysqlTest extends CakeTestCase {
|
||||||
'default',
|
'default',
|
||||||
'null' => true,
|
'null' => true,
|
||||||
'key',
|
'key',
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_unicode_ci'
|
'collate' => 'utf8mb4_unicode_ci'
|
||||||
);
|
);
|
||||||
$result = $this->db->buildColumn($data);
|
$result = $this->db->buildColumn($data);
|
||||||
$expected = '`testName` CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL';
|
$expected = '`testName` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL';
|
||||||
$this->assertEqual($result, $expected);
|
$this->assertEqual($result, $expected);
|
||||||
$this->db->columns = $restore;
|
$this->db->columns = $restore;
|
||||||
}
|
}
|
||||||
|
@ -648,22 +648,22 @@ class DboMysqlTest extends CakeTestCase {
|
||||||
'id' => array('type' => 'integer', 'null' => false, 'default' => 0),
|
'id' => array('type' => 'integer', 'null' => false, 'default' => 0),
|
||||||
'name' => array('type' => 'string', 'null' => false, 'length' => 50),
|
'name' => array('type' => 'string', 'null' => false, 'length' => 50),
|
||||||
'tableParameters' => array(
|
'tableParameters' => array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_general_ci',
|
'collate' => 'utf8mb4_general_ci',
|
||||||
'engine' => 'InnoDB'
|
'engine' => 'InnoDB'
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
));
|
));
|
||||||
$result = $this->db->alterSchema($schema2->compare($schema1));
|
$result = $this->db->alterSchema($schema2->compare($schema1));
|
||||||
$this->assertPattern('/DEFAULT CHARSET=utf8/', $result);
|
$this->assertPattern('/DEFAULT CHARSET=utf8mb4/', $result);
|
||||||
$this->assertPattern('/ENGINE=InnoDB/', $result);
|
$this->assertPattern('/ENGINE=InnoDB/', $result);
|
||||||
$this->assertPattern('/COLLATE=utf8_general_ci/', $result);
|
$this->assertPattern('/COLLATE=utf8mb4_general_ci/', $result);
|
||||||
|
|
||||||
$this->db->query($result);
|
$this->db->query($result);
|
||||||
$result = $this->db->listDetailedSources('altertest');
|
$result = $this->db->listDetailedSources('altertest');
|
||||||
$this->assertEqual($result['Collation'], 'utf8_general_ci');
|
$this->assertEqual($result['Collation'], 'utf8mb4_general_ci');
|
||||||
$this->assertEqual($result['Engine'], 'InnoDB');
|
$this->assertEqual($result['Engine'], 'InnoDB');
|
||||||
$this->assertEqual($result['charset'], 'utf8');
|
$this->assertEqual($result['charset'], 'utf8mb4');
|
||||||
|
|
||||||
$this->db->query($this->db->dropSchema($schema1));
|
$this->db->query($this->db->dropSchema($schema1));
|
||||||
}
|
}
|
||||||
|
@ -710,11 +710,11 @@ class DboMysqlTest extends CakeTestCase {
|
||||||
*/
|
*/
|
||||||
function testReadTableParameters() {
|
function testReadTableParameters() {
|
||||||
$this->db->cacheSources = false;
|
$this->db->cacheSources = false;
|
||||||
$this->db->query('CREATE TABLE ' . $this->db->fullTableName('tinyint') . ' (id int(11) AUTO_INCREMENT, bool tinyint(1), small_int tinyint(2), primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;');
|
$this->db->query('CREATE TABLE ' . $this->db->fullTableName('tinyint') . ' (id int(11) AUTO_INCREMENT, bool tinyint(1), small_int tinyint(2), primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;');
|
||||||
$result = $this->db->readTableParameters('tinyint');
|
$result = $this->db->readTableParameters('tinyint');
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_unicode_ci',
|
'collate' => 'utf8mb4_unicode_ci',
|
||||||
'engine' => 'InnoDB');
|
'engine' => 'InnoDB');
|
||||||
$this->assertEqual($result, $expected);
|
$this->assertEqual($result, $expected);
|
||||||
|
|
||||||
|
@ -738,13 +738,13 @@ class DboMysqlTest extends CakeTestCase {
|
||||||
function testBuildTableParameters() {
|
function testBuildTableParameters() {
|
||||||
$this->db->cacheSources = false;
|
$this->db->cacheSources = false;
|
||||||
$data = array(
|
$data = array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_unicode_ci',
|
'collate' => 'utf8mb4_unicode_ci',
|
||||||
'engine' => 'InnoDB');
|
'engine' => 'InnoDB');
|
||||||
$result = $this->db->buildTableParameters($data);
|
$result = $this->db->buildTableParameters($data);
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'DEFAULT CHARSET=utf8',
|
'DEFAULT CHARSET=utf8mb4',
|
||||||
'COLLATE=utf8_unicode_ci',
|
'COLLATE=utf8mb4_unicode_ci',
|
||||||
'ENGINE=InnoDB');
|
'ENGINE=InnoDB');
|
||||||
$this->assertEqual($result, $expected);
|
$this->assertEqual($result, $expected);
|
||||||
}
|
}
|
||||||
|
@ -757,8 +757,8 @@ class DboMysqlTest extends CakeTestCase {
|
||||||
*/
|
*/
|
||||||
function testGetCharsetName() {
|
function testGetCharsetName() {
|
||||||
$this->db->cacheSources = false;
|
$this->db->cacheSources = false;
|
||||||
$result = $this->db->getCharsetName('utf8_unicode_ci');
|
$result = $this->db->getCharsetName('utf8mb4_unicode_ci');
|
||||||
$this->assertEqual($result, 'utf8');
|
$this->assertEqual($result, 'utf8mb4');
|
||||||
$result = $this->db->getCharsetName('cp1250_general_ci');
|
$result = $this->db->getCharsetName('cp1250_general_ci');
|
||||||
$this->assertEqual($result, 'cp1250');
|
$this->assertEqual($result, 'cp1250');
|
||||||
}
|
}
|
||||||
|
|
|
@ -318,11 +318,11 @@ class DboMysqliTest extends CakeTestCase {
|
||||||
*/
|
*/
|
||||||
function testReadTableParameters() {
|
function testReadTableParameters() {
|
||||||
$this->db->cacheSources = $this->db->testing = false;
|
$this->db->cacheSources = $this->db->testing = false;
|
||||||
$this->db->query('CREATE TABLE ' . $this->db->fullTableName('tinyint') . ' (id int(11) AUTO_INCREMENT, bool tinyint(1), small_int tinyint(2), primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;');
|
$this->db->query('CREATE TABLE ' . $this->db->fullTableName('tinyint') . ' (id int(11) AUTO_INCREMENT, bool tinyint(1), small_int tinyint(2), primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;');
|
||||||
$result = $this->db->readTableParameters('tinyint');
|
$result = $this->db->readTableParameters('tinyint');
|
||||||
$expected = array(
|
$expected = array(
|
||||||
'charset' => 'utf8',
|
'charset' => 'utf8mb4',
|
||||||
'collate' => 'utf8_unicode_ci',
|
'collate' => 'utf8mb4_unicode_ci',
|
||||||
'engine' => 'InnoDB');
|
'engine' => 'InnoDB');
|
||||||
$this->assertEqual($result, $expected);
|
$this->assertEqual($result, $expected);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue