Passed
Push — master ( 9a204a...19ca92 )
by Roeland
24:18 queued 12:50
created
lib/private/Repair/SqliteAutoincrement.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -36,66 +36,66 @@
 block discarded – undo
36 36
  * altered in order to retrigger SQL schema generation through OCSqlitePlatform.
37 37
  */
38 38
 class SqliteAutoincrement implements IRepairStep {
39
-	/**
40
-	 * @var \OC\DB\Connection
41
-	 */
42
-	protected $connection;
39
+    /**
40
+     * @var \OC\DB\Connection
41
+     */
42
+    protected $connection;
43 43
 
44
-	/**
45
-	 * @param \OC\DB\Connection $connection
46
-	 */
47
-	public function __construct($connection) {
48
-		$this->connection = $connection;
49
-	}
44
+    /**
45
+     * @param \OC\DB\Connection $connection
46
+     */
47
+    public function __construct($connection) {
48
+        $this->connection = $connection;
49
+    }
50 50
 
51
-	public function getName() {
52
-		return 'Repair SQLite autoincrement';
53
-	}
51
+    public function getName() {
52
+        return 'Repair SQLite autoincrement';
53
+    }
54 54
 
55
-	/**
56
-	 * Fix mime types
57
-	 */
58
-	public function run(IOutput $out) {
59
-		if (!$this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
60
-			return;
61
-		}
55
+    /**
56
+     * Fix mime types
57
+     */
58
+    public function run(IOutput $out) {
59
+        if (!$this->connection->getDatabasePlatform() instanceof SqlitePlatform) {
60
+            return;
61
+        }
62 62
 
63
-		$sourceSchema = $this->connection->getSchemaManager()->createSchema();
63
+        $sourceSchema = $this->connection->getSchemaManager()->createSchema();
64 64
 
65
-		$schemaDiff = new SchemaDiff();
65
+        $schemaDiff = new SchemaDiff();
66 66
 
67
-		foreach ($sourceSchema->getTables() as $tableSchema) {
68
-			$primaryKey = $tableSchema->getPrimaryKey();
69
-			if (!$primaryKey) {
70
-				continue;
71
-			}
67
+        foreach ($sourceSchema->getTables() as $tableSchema) {
68
+            $primaryKey = $tableSchema->getPrimaryKey();
69
+            if (!$primaryKey) {
70
+                continue;
71
+            }
72 72
 
73
-			$columnNames = $primaryKey->getColumns();
73
+            $columnNames = $primaryKey->getColumns();
74 74
 
75
-			// add a column diff for every primary key column,
76
-			// but do not actually change anything, this will
77
-			// force the generation of SQL statements to alter
78
-			// those tables, which will then trigger the
79
-			// specific SQL code from OCSqlitePlatform
80
-			try {
81
-				$tableDiff = new TableDiff($tableSchema->getName());
82
-				$tableDiff->fromTable = $tableSchema;
83
-				foreach ($columnNames as $columnName) {
84
-					$columnSchema = $tableSchema->getColumn($columnName);
85
-					$columnDiff = new ColumnDiff($columnSchema->getName(), $columnSchema);
86
-					$tableDiff->changedColumns[] = $columnDiff;
87
-					$schemaDiff->changedTables[] = $tableDiff;
88
-				}
89
-			} catch (SchemaException $e) {
90
-				// ignore
91
-			}
92
-		}
75
+            // add a column diff for every primary key column,
76
+            // but do not actually change anything, this will
77
+            // force the generation of SQL statements to alter
78
+            // those tables, which will then trigger the
79
+            // specific SQL code from OCSqlitePlatform
80
+            try {
81
+                $tableDiff = new TableDiff($tableSchema->getName());
82
+                $tableDiff->fromTable = $tableSchema;
83
+                foreach ($columnNames as $columnName) {
84
+                    $columnSchema = $tableSchema->getColumn($columnName);
85
+                    $columnDiff = new ColumnDiff($columnSchema->getName(), $columnSchema);
86
+                    $tableDiff->changedColumns[] = $columnDiff;
87
+                    $schemaDiff->changedTables[] = $tableDiff;
88
+                }
89
+            } catch (SchemaException $e) {
90
+                // ignore
91
+            }
92
+        }
93 93
 
94
-		$this->connection->beginTransaction();
95
-		foreach ($schemaDiff->toSql($this->connection->getDatabasePlatform()) as $sql) {
96
-			$this->connection->query($sql);
97
-		}
98
-		$this->connection->commit();
99
-	}
94
+        $this->connection->beginTransaction();
95
+        foreach ($schemaDiff->toSql($this->connection->getDatabasePlatform()) as $sql) {
96
+            $this->connection->query($sql);
97
+        }
98
+        $this->connection->commit();
99
+    }
100 100
 }
101 101
 
Please login to merge, or discard this patch.
lib/private/DB/MySQLMigrator.php 1 patch
Indentation   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -29,28 +29,28 @@
 block discarded – undo
29 29
 use Doctrine\DBAL\Schema\Table;
30 30
 
31 31
 class MySQLMigrator extends Migrator {
32
-	/**
33
-	 * @param Schema $targetSchema
34
-	 * @param \Doctrine\DBAL\Connection $connection
35
-	 * @return \Doctrine\DBAL\Schema\SchemaDiff
36
-	 */
37
-	protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
38
-		$platform = $connection->getDatabasePlatform();
39
-		$platform->registerDoctrineTypeMapping('enum', 'string');
40
-		$platform->registerDoctrineTypeMapping('bit', 'string');
32
+    /**
33
+     * @param Schema $targetSchema
34
+     * @param \Doctrine\DBAL\Connection $connection
35
+     * @return \Doctrine\DBAL\Schema\SchemaDiff
36
+     */
37
+    protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
38
+        $platform = $connection->getDatabasePlatform();
39
+        $platform->registerDoctrineTypeMapping('enum', 'string');
40
+        $platform->registerDoctrineTypeMapping('bit', 'string');
41 41
 
42
-		$schemaDiff = parent::getDiff($targetSchema, $connection);
42
+        $schemaDiff = parent::getDiff($targetSchema, $connection);
43 43
 
44
-		// identifiers need to be quoted for mysql
45
-		foreach ($schemaDiff->changedTables as $tableDiff) {
46
-			$tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name);
47
-			foreach ($tableDiff->changedColumns as $column) {
48
-				$column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName);
49
-			}
50
-		}
44
+        // identifiers need to be quoted for mysql
45
+        foreach ($schemaDiff->changedTables as $tableDiff) {
46
+            $tableDiff->name = $this->connection->quoteIdentifier($tableDiff->name);
47
+            foreach ($tableDiff->changedColumns as $column) {
48
+                $column->oldColumnName = $this->connection->quoteIdentifier($column->oldColumnName);
49
+            }
50
+        }
51 51
 
52
-		return $schemaDiff;
53
-	}
52
+        return $schemaDiff;
53
+    }
54 54
 	
55 55
         /**
56 56
          * Speed up migration test by disabling autocommit and unique indexes check
Please login to merge, or discard this patch.
lib/private/DB/QueryBuilder/QueryFunction.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@
 block discarded – undo
25 25
 use OCP\DB\QueryBuilder\IQueryFunction;
26 26
 
27 27
 class QueryFunction implements IQueryFunction {
28
-	/** @var string */
29
-	protected $function;
28
+    /** @var string */
29
+    protected $function;
30 30
 
31
-	public function __construct($function) {
32
-		$this->function = $function;
33
-	}
31
+    public function __construct($function) {
32
+        $this->function = $function;
33
+    }
34 34
 
35
-	/**
36
-	 * @return string
37
-	 */
38
-	public function __toString() {
39
-		return (string) $this->function;
40
-	}
35
+    /**
36
+     * @return string
37
+     */
38
+    public function __toString() {
39
+        return (string) $this->function;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
lib/private/DB/QueryBuilder/Literal.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@
 block discarded – undo
25 25
 use OCP\DB\QueryBuilder\ILiteral;
26 26
 
27 27
 class Literal implements ILiteral{
28
-	/** @var mixed */
29
-	protected $literal;
28
+    /** @var mixed */
29
+    protected $literal;
30 30
 
31
-	public function __construct($literal) {
32
-		$this->literal = $literal;
33
-	}
31
+    public function __construct($literal) {
32
+        $this->literal = $literal;
33
+    }
34 34
 
35
-	/**
36
-	 * @return string
37
-	 */
38
-	public function __toString() {
39
-		return (string) $this->literal;
40
-	}
35
+    /**
36
+     * @return string
37
+     */
38
+    public function __toString() {
39
+        return (string) $this->literal;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
lib/private/DB/QueryBuilder/Parameter.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@
 block discarded – undo
25 25
 use OCP\DB\QueryBuilder\IParameter;
26 26
 
27 27
 class Parameter implements IParameter {
28
-	/** @var mixed */
29
-	protected $name;
28
+    /** @var mixed */
29
+    protected $name;
30 30
 
31
-	public function __construct($name) {
32
-		$this->name = $name;
33
-	}
31
+    public function __construct($name) {
32
+        $this->name = $name;
33
+    }
34 34
 
35
-	/**
36
-	 * @return string
37
-	 */
38
-	public function __toString() {
39
-		return (string) $this->name;
40
-	}
35
+    /**
36
+     * @return string
37
+     */
38
+    public function __toString() {
39
+        return (string) $this->name;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
lib/private/DB/PostgreSqlMigrator.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -25,32 +25,32 @@
 block discarded – undo
25 25
 use Doctrine\DBAL\Schema\Schema;
26 26
 
27 27
 class PostgreSqlMigrator extends Migrator {
28
-	/**
29
-	 * @param Schema $targetSchema
30
-	 * @param \Doctrine\DBAL\Connection $connection
31
-	 * @return \Doctrine\DBAL\Schema\SchemaDiff
32
-	 */
33
-	protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
34
-		$schemaDiff = parent::getDiff($targetSchema, $connection);
28
+    /**
29
+     * @param Schema $targetSchema
30
+     * @param \Doctrine\DBAL\Connection $connection
31
+     * @return \Doctrine\DBAL\Schema\SchemaDiff
32
+     */
33
+    protected function getDiff(Schema $targetSchema, \Doctrine\DBAL\Connection $connection) {
34
+        $schemaDiff = parent::getDiff($targetSchema, $connection);
35 35
 
36
-		foreach ($schemaDiff->changedTables as $tableDiff) {
37
-			// fix default value in brackets - pg 9.4 is returning a negative default value in ()
38
-			// see https://github.com/doctrine/dbal/issues/2427
39
-			foreach ($tableDiff->changedColumns as $column) {
40
-				$column->changedProperties = array_filter($column->changedProperties, function ($changedProperties) use ($column) {
41
-					if ($changedProperties !== 'default') {
42
-						return true;
43
-					}
44
-					$fromDefault = $column->fromColumn->getDefault();
45
-					$toDefault = $column->column->getDefault();
46
-					$fromDefault = trim($fromDefault, "()");
36
+        foreach ($schemaDiff->changedTables as $tableDiff) {
37
+            // fix default value in brackets - pg 9.4 is returning a negative default value in ()
38
+            // see https://github.com/doctrine/dbal/issues/2427
39
+            foreach ($tableDiff->changedColumns as $column) {
40
+                $column->changedProperties = array_filter($column->changedProperties, function ($changedProperties) use ($column) {
41
+                    if ($changedProperties !== 'default') {
42
+                        return true;
43
+                    }
44
+                    $fromDefault = $column->fromColumn->getDefault();
45
+                    $toDefault = $column->column->getDefault();
46
+                    $fromDefault = trim($fromDefault, "()");
47 47
 
48
-					// by intention usage of !=
49
-					return $fromDefault != $toDefault;
50
-				});
51
-			}
52
-		}
48
+                    // by intention usage of !=
49
+                    return $fromDefault != $toDefault;
50
+                });
51
+            }
52
+        }
53 53
 
54
-		return $schemaDiff;
55
-	}
54
+        return $schemaDiff;
55
+    }
56 56
 }
Please login to merge, or discard this patch.
lib/private/DB/AdapterMySQL.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -27,31 +27,31 @@
 block discarded – undo
27 27
 
28 28
 class AdapterMySQL extends Adapter {
29 29
 
30
-	/** @var string */
31
-	protected $charset;
32
-
33
-	/**
34
-	 * @param string $tableName
35
-	 */
36
-	public function lockTable($tableName) {
37
-		$this->conn->executeUpdate('LOCK TABLES `' .$tableName . '` WRITE');
38
-	}
39
-
40
-	public function unlockTable() {
41
-		$this->conn->executeUpdate('UNLOCK TABLES');
42
-	}
43
-
44
-	public function fixupStatement($statement) {
45
-		$statement = str_replace(' ILIKE ', ' COLLATE ' . $this->getCharset() . '_general_ci LIKE ', $statement);
46
-		return $statement;
47
-	}
48
-
49
-	protected function getCharset() {
50
-		if (!$this->charset) {
51
-			$params = $this->conn->getParams();
52
-			$this->charset = isset($params['charset']) ? $params['charset'] : 'utf8';
53
-		}
54
-
55
-		return $this->charset;
56
-	}
30
+    /** @var string */
31
+    protected $charset;
32
+
33
+    /**
34
+     * @param string $tableName
35
+     */
36
+    public function lockTable($tableName) {
37
+        $this->conn->executeUpdate('LOCK TABLES `' .$tableName . '` WRITE');
38
+    }
39
+
40
+    public function unlockTable() {
41
+        $this->conn->executeUpdate('UNLOCK TABLES');
42
+    }
43
+
44
+    public function fixupStatement($statement) {
45
+        $statement = str_replace(' ILIKE ', ' COLLATE ' . $this->getCharset() . '_general_ci LIKE ', $statement);
46
+        return $statement;
47
+    }
48
+
49
+    protected function getCharset() {
50
+        if (!$this->charset) {
51
+            $params = $this->conn->getParams();
52
+            $this->charset = isset($params['charset']) ? $params['charset'] : 'utf8';
53
+        }
54
+
55
+        return $this->charset;
56
+    }
57 57
 }
Please login to merge, or discard this patch.
lib/private/DB/MigrationException.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -25,17 +25,17 @@
 block discarded – undo
25 25
 
26 26
 
27 27
 class MigrationException extends \Exception {
28
-	private $table;
28
+    private $table;
29 29
 
30
-	public function __construct($table, $message) {
31
-		$this->table = $table;
32
-		parent::__construct($message);
33
-	}
30
+    public function __construct($table, $message) {
31
+        $this->table = $table;
32
+        parent::__construct($message);
33
+    }
34 34
 
35
-	/**
36
-	 * @return string
37
-	 */
38
-	public function getTable() {
39
-		return $this->table;
40
-	}
35
+    /**
36
+     * @return string
37
+     */
38
+    public function getTable() {
39
+        return $this->table;
40
+    }
41 41
 }
Please login to merge, or discard this patch.
lib/private/DB/MDB2SchemaWriter.php 1 patch
Indentation   +140 added lines, -140 removed lines patch added patch discarded remove patch
@@ -31,153 +31,153 @@
 block discarded – undo
31 31
 
32 32
 class MDB2SchemaWriter {
33 33
 
34
-	/**
35
-	 * @param string $file
36
-	 * @param \OC\DB\Connection $conn
37
-	 * @return bool
38
-	 */
39
-	static public function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
-		$config = \OC::$server->getConfig();
34
+    /**
35
+     * @param string $file
36
+     * @param \OC\DB\Connection $conn
37
+     * @return bool
38
+     */
39
+    static public function saveSchemaToFile($file, \OC\DB\Connection $conn) {
40
+        $config = \OC::$server->getConfig();
41 41
 
42
-		$xml = new \SimpleXMLElement('<database/>');
43
-		$xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
-		$xml->addChild('create', 'true');
45
-		$xml->addChild('overwrite', 'false');
46
-		if($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
-			$xml->addChild('charset', 'utf8mb4');
48
-		} else {
49
-			$xml->addChild('charset', 'utf8');
50
-		}
42
+        $xml = new \SimpleXMLElement('<database/>');
43
+        $xml->addChild('name', $config->getSystemValue('dbname', 'owncloud'));
44
+        $xml->addChild('create', 'true');
45
+        $xml->addChild('overwrite', 'false');
46
+        if($config->getSystemValue('dbtype', 'sqlite') === 'mysql' && $config->getSystemValue('mysql.utf8mb4', false)) {
47
+            $xml->addChild('charset', 'utf8mb4');
48
+        } else {
49
+            $xml->addChild('charset', 'utf8');
50
+        }
51 51
 
52
-		// FIX ME: bloody work around
53
-		if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
-			$filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
-		} else {
56
-			$filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
-		}
58
-		$conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
52
+        // FIX ME: bloody work around
53
+        if ($config->getSystemValue('dbtype', 'sqlite') === 'oci') {
54
+            $filterExpression = '/^"' . preg_quote($conn->getPrefix()) . '/';
55
+        } else {
56
+            $filterExpression = '/^' . preg_quote($conn->getPrefix()) . '/';
57
+        }
58
+        $conn->getConfiguration()->setFilterSchemaAssetsExpression($filterExpression);
59 59
 
60
-		foreach ($conn->getSchemaManager()->listTables() as $table) {
61
-			self::saveTable($table, $xml->addChild('table'));
62
-		}
63
-		file_put_contents($file, $xml->asXML());
64
-		return true;
65
-	}
60
+        foreach ($conn->getSchemaManager()->listTables() as $table) {
61
+            self::saveTable($table, $xml->addChild('table'));
62
+        }
63
+        file_put_contents($file, $xml->asXML());
64
+        return true;
65
+    }
66 66
 
67
-	/**
68
-	 * @param \Doctrine\DBAL\Schema\Table $table
69
-	 * @param \SimpleXMLElement $xml
70
-	 */
71
-	private static function saveTable($table, $xml) {
72
-		$xml->addChild('name', $table->getName());
73
-		$declaration = $xml->addChild('declaration');
74
-		foreach($table->getColumns() as $column) {
75
-			self::saveColumn($column, $declaration->addChild('field'));
76
-		}
77
-		foreach($table->getIndexes() as $index) {
78
-			if ($index->getName() == 'PRIMARY') {
79
-				$autoincrement = false;
80
-				foreach($index->getColumns() as $column) {
81
-					if ($table->getColumn($column)->getAutoincrement()) {
82
-						$autoincrement = true;
83
-					}
84
-				}
85
-				if ($autoincrement) {
86
-					continue;
87
-				}
88
-			}
89
-			self::saveIndex($index, $declaration->addChild('index'));
90
-		}
91
-	}
67
+    /**
68
+     * @param \Doctrine\DBAL\Schema\Table $table
69
+     * @param \SimpleXMLElement $xml
70
+     */
71
+    private static function saveTable($table, $xml) {
72
+        $xml->addChild('name', $table->getName());
73
+        $declaration = $xml->addChild('declaration');
74
+        foreach($table->getColumns() as $column) {
75
+            self::saveColumn($column, $declaration->addChild('field'));
76
+        }
77
+        foreach($table->getIndexes() as $index) {
78
+            if ($index->getName() == 'PRIMARY') {
79
+                $autoincrement = false;
80
+                foreach($index->getColumns() as $column) {
81
+                    if ($table->getColumn($column)->getAutoincrement()) {
82
+                        $autoincrement = true;
83
+                    }
84
+                }
85
+                if ($autoincrement) {
86
+                    continue;
87
+                }
88
+            }
89
+            self::saveIndex($index, $declaration->addChild('index'));
90
+        }
91
+    }
92 92
 
93
-	/**
94
-	 * @param Column $column
95
-	 * @param \SimpleXMLElement $xml
96
-	 */
97
-	private static function saveColumn($column, $xml) {
98
-		$xml->addChild('name', $column->getName());
99
-		switch($column->getType()) {
100
-			case 'SmallInt':
101
-			case 'Integer':
102
-			case 'BigInt':
103
-				$xml->addChild('type', 'integer');
104
-				$default = $column->getDefault();
105
-				if (is_null($default) && $column->getAutoincrement()) {
106
-					$default = '0';
107
-				}
108
-				$xml->addChild('default', $default);
109
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
110
-				if ($column->getAutoincrement()) {
111
-					$xml->addChild('autoincrement', '1');
112
-				}
113
-				if ($column->getUnsigned()) {
114
-					$xml->addChild('unsigned', 'true');
115
-				}
116
-				$length = '4';
117
-				if ($column->getType() == 'SmallInt') {
118
-					$length = '2';
119
-				}
120
-				elseif ($column->getType() == 'BigInt') {
121
-					$length = '8';
122
-				}
123
-				$xml->addChild('length', $length);
124
-				break;
125
-			case 'String':
126
-				$xml->addChild('type', 'text');
127
-				$default = trim($column->getDefault());
128
-				if ($default === '') {
129
-					$default = false;
130
-				}
131
-				$xml->addChild('default', $default);
132
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
133
-				$xml->addChild('length', $column->getLength());
134
-				break;
135
-			case 'Text':
136
-				$xml->addChild('type', 'clob');
137
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
138
-				break;
139
-			case 'Decimal':
140
-				$xml->addChild('type', 'decimal');
141
-				$xml->addChild('default', $column->getDefault());
142
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
143
-				$xml->addChild('length', '15');
144
-				break;
145
-			case 'Boolean':
146
-				$xml->addChild('type', 'integer');
147
-				$xml->addChild('default', $column->getDefault());
148
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
149
-				$xml->addChild('length', '1');
150
-				break;
151
-			case 'DateTime':
152
-				$xml->addChild('type', 'timestamp');
153
-				$xml->addChild('default', $column->getDefault());
154
-				$xml->addChild('notnull', self::toBool($column->getNotnull()));
155
-				break;
93
+    /**
94
+     * @param Column $column
95
+     * @param \SimpleXMLElement $xml
96
+     */
97
+    private static function saveColumn($column, $xml) {
98
+        $xml->addChild('name', $column->getName());
99
+        switch($column->getType()) {
100
+            case 'SmallInt':
101
+            case 'Integer':
102
+            case 'BigInt':
103
+                $xml->addChild('type', 'integer');
104
+                $default = $column->getDefault();
105
+                if (is_null($default) && $column->getAutoincrement()) {
106
+                    $default = '0';
107
+                }
108
+                $xml->addChild('default', $default);
109
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
110
+                if ($column->getAutoincrement()) {
111
+                    $xml->addChild('autoincrement', '1');
112
+                }
113
+                if ($column->getUnsigned()) {
114
+                    $xml->addChild('unsigned', 'true');
115
+                }
116
+                $length = '4';
117
+                if ($column->getType() == 'SmallInt') {
118
+                    $length = '2';
119
+                }
120
+                elseif ($column->getType() == 'BigInt') {
121
+                    $length = '8';
122
+                }
123
+                $xml->addChild('length', $length);
124
+                break;
125
+            case 'String':
126
+                $xml->addChild('type', 'text');
127
+                $default = trim($column->getDefault());
128
+                if ($default === '') {
129
+                    $default = false;
130
+                }
131
+                $xml->addChild('default', $default);
132
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
133
+                $xml->addChild('length', $column->getLength());
134
+                break;
135
+            case 'Text':
136
+                $xml->addChild('type', 'clob');
137
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
138
+                break;
139
+            case 'Decimal':
140
+                $xml->addChild('type', 'decimal');
141
+                $xml->addChild('default', $column->getDefault());
142
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
143
+                $xml->addChild('length', '15');
144
+                break;
145
+            case 'Boolean':
146
+                $xml->addChild('type', 'integer');
147
+                $xml->addChild('default', $column->getDefault());
148
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
149
+                $xml->addChild('length', '1');
150
+                break;
151
+            case 'DateTime':
152
+                $xml->addChild('type', 'timestamp');
153
+                $xml->addChild('default', $column->getDefault());
154
+                $xml->addChild('notnull', self::toBool($column->getNotnull()));
155
+                break;
156 156
 
157
-		}
158
-	}
157
+        }
158
+    }
159 159
 
160
-	/**
161
-	 * @param Index $index
162
-	 * @param \SimpleXMLElement $xml
163
-	 */
164
-	private static function saveIndex($index, $xml) {
165
-		$xml->addChild('name', $index->getName());
166
-		if ($index->isPrimary()) {
167
-			$xml->addChild('primary', 'true');
168
-		}
169
-		elseif ($index->isUnique()) {
170
-			$xml->addChild('unique', 'true');
171
-		}
172
-		foreach($index->getColumns() as $column) {
173
-			$field = $xml->addChild('field');
174
-			$field->addChild('name', $column);
175
-			$field->addChild('sorting', 'ascending');
160
+    /**
161
+     * @param Index $index
162
+     * @param \SimpleXMLElement $xml
163
+     */
164
+    private static function saveIndex($index, $xml) {
165
+        $xml->addChild('name', $index->getName());
166
+        if ($index->isPrimary()) {
167
+            $xml->addChild('primary', 'true');
168
+        }
169
+        elseif ($index->isUnique()) {
170
+            $xml->addChild('unique', 'true');
171
+        }
172
+        foreach($index->getColumns() as $column) {
173
+            $field = $xml->addChild('field');
174
+            $field->addChild('name', $column);
175
+            $field->addChild('sorting', 'ascending');
176 176
 			
177
-		}
178
-	}
177
+        }
178
+    }
179 179
 
180
-	private static function toBool($bool) {
181
-		return $bool ? 'true' : 'false';
182
-	}
180
+    private static function toBool($bool) {
181
+        return $bool ? 'true' : 'false';
182
+    }
183 183
 }
Please login to merge, or discard this patch.