diff --git a/src/core/Directus/Database/Schema/SchemaFactory.php b/src/core/Directus/Database/Schema/SchemaFactory.php index c8ec0aba48..21d9533a81 100644 --- a/src/core/Directus/Database/Schema/SchemaFactory.php +++ b/src/core/Directus/Database/Schema/SchemaFactory.php @@ -229,14 +229,17 @@ public function createColumn($name, array $data) * * @return \Zend\Db\Adapter\Driver\StatementInterface|\Zend\Db\ResultSet\ResultSet */ - public function buildTable(AbstractSql $table) + public function buildTable(AbstractSql $table,$charset="") { $connection = $this->schemaManager->getSource()->getConnection(); $sql = new Sql($connection); - + + $tableQuery = $sql->buildSqlString($table); + $tableQuery = !empty($charset) ? $tableQuery."charset = ".$charset: $tableQuery; + // TODO: Allow charset and comment return $connection->query( - $sql->buildSqlString($table), + $tableQuery, $connection::QUERY_MODE_EXECUTE ); } diff --git a/src/core/Directus/Services/TablesService.php b/src/core/Directus/Services/TablesService.php index 1d5395ab6c..7aa340af5e 100644 --- a/src/core/Directus/Services/TablesService.php +++ b/src/core/Directus/Services/TablesService.php @@ -1156,7 +1156,6 @@ protected function hasFieldAttributeWith(array $fields, $attribute, $value, $max return $result; } - /** * @param string $name * @param array $data @@ -1175,11 +1174,11 @@ protected function createTableSchema($name, array $data) /** @var Emitter $hookEmitter */ $hookEmitter = $this->container->get('hook_emitter'); $hookEmitter->run('collection.create:before', $name); - - $result = $schemaFactory->buildTable($table); + $charset = $this->container->get('config')->get('database.charset'); + $result = $schemaFactory->buildTable($table,$charset); return $result ? true : false; - } + } /** * @param Collection $collection