Quote index columns that need it
This commit is contained in:
parent
2866376f34
commit
947e03aab5
|
@ -9,10 +9,12 @@
|
||||||
class OC_DB_MDB2SchemaReader {
|
class OC_DB_MDB2SchemaReader {
|
||||||
static protected $DBNAME;
|
static protected $DBNAME;
|
||||||
static protected $DBTABLEPREFIX;
|
static protected $DBTABLEPREFIX;
|
||||||
|
static protected $platform;
|
||||||
|
|
||||||
public static function loadSchemaFromFile($file) {
|
public static function loadSchemaFromFile($file, $platform) {
|
||||||
self::$DBNAME = OC_Config::getValue( "dbname", "owncloud" );
|
self::$DBNAME = OC_Config::getValue( "dbname", "owncloud" );
|
||||||
self::$DBTABLEPREFIX = OC_Config::getValue( "dbtableprefix", "oc_" );
|
self::$DBTABLEPREFIX = OC_Config::getValue( "dbtableprefix", "oc_" );
|
||||||
|
self::$platform = $platform;
|
||||||
$schema = new \Doctrine\DBAL\Schema\Schema();
|
$schema = new \Doctrine\DBAL\Schema\Schema();
|
||||||
$xml = simplexml_load_file($file);
|
$xml = simplexml_load_file($file);
|
||||||
foreach($xml->children() as $child) {
|
foreach($xml->children() as $child) {
|
||||||
|
@ -173,6 +175,10 @@ class OC_DB_MDB2SchemaReader {
|
||||||
switch($field->getName()) {
|
switch($field->getName()) {
|
||||||
case 'name':
|
case 'name':
|
||||||
$field_name = (string)$field;
|
$field_name = (string)$field;
|
||||||
|
$keywords = self::$platform->getReservedKeywordsList();
|
||||||
|
if ($keywords->isKeyword($field_name)) {
|
||||||
|
$field_name = self::$platform->quoteIdentifier($field_name);
|
||||||
|
}
|
||||||
$fields[] = $field_name;
|
$fields[] = $field_name;
|
||||||
break;
|
break;
|
||||||
case 'sorting':
|
case 'sorting':
|
||||||
|
|
|
@ -32,7 +32,7 @@ class OC_DB_Schema {
|
||||||
* TODO: write more documentation
|
* TODO: write more documentation
|
||||||
*/
|
*/
|
||||||
public static function createDbFromStructure( $conn, $file ) {
|
public static function createDbFromStructure( $conn, $file ) {
|
||||||
$toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
|
$toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
|
||||||
return self::executeSchemaChange($conn, $toSchema);
|
return self::executeSchemaChange($conn, $toSchema);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ class OC_DB_Schema {
|
||||||
$sm = $conn->getSchemaManager();
|
$sm = $conn->getSchemaManager();
|
||||||
$fromSchema = $sm->createSchema();
|
$fromSchema = $sm->createSchema();
|
||||||
|
|
||||||
$toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
|
$toSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
|
||||||
|
|
||||||
// remove tables we don't know about
|
// remove tables we don't know about
|
||||||
foreach($fromSchema->getTables() as $table) {
|
foreach($fromSchema->getTables() as $table) {
|
||||||
|
@ -84,7 +84,7 @@ class OC_DB_Schema {
|
||||||
* @param string $file the xml file describing the tables
|
* @param string $file the xml file describing the tables
|
||||||
*/
|
*/
|
||||||
public static function removeDBStructure($conn, $file) {
|
public static function removeDBStructure($conn, $file) {
|
||||||
$fromSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file);
|
$fromSchema = OC_DB_MDB2SchemaReader::loadSchemaFromFile($file, $conn->getDatabasePlatform());
|
||||||
$toSchema = clone $fromSchema;
|
$toSchema = clone $fromSchema;
|
||||||
foreach($toSchema->getTables() as $table) {
|
foreach($toSchema->getTables() as $table) {
|
||||||
$toSchema->dropTable($table->getName());
|
$toSchema->dropTable($table->getName());
|
||||||
|
|
Loading…
Reference in New Issue