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