             }
             return columnDefinition
         }
-        
-        if existingTables.contains(tableName) {
-            let select = "select * from \(tableName) limit 0"
-            do{
-                let statement = try self.database.prepare(select)
-                let columnNames = statement.columnNames
-                propertyDatas.forEach{ property in
-                    if !columnNames.contains(property.name!) {
-                        let alertSQL = "alter table \(tableName) add column \(columnDefinition)"
-                        execute(alertSQL)
-                    }
+        let select = "select * from \(tableName) limit 0"
+        do{
+            let statement = try self.database.prepare(select)
+            let columnNames = statement.columnNames
+            propertyDatas.forEach{ property in
+                if !columnNames.contains(property.name!) {
+                    let alertSQL = "alter table \(tableName) add column \(columnDefinition(property))"
+                    execute(alertSQL)
                 }
-            } catch {
-                
             }
-        } else {
+        } catch {
             var statement = "CREATE TABLE \(tableName) ("
             var columnDefinitions: [String] = []
             for propertyData in propertyDatas {

            return nil
        }
    }
    
    public func delete(table table: String, filter: Filter?) {
        let sql = SQL(operation: .DELETE, table: table)
        sql.filter = filter
        execute(sql)?.run()
    }
    
    public func update(table table: String, filter: Filter?, data: [String: Binding?]) {
        let sql = SQL(operation: .UPDATE, table: table)
        sql.filter = filter
        sql.data = data
        execute(sql)?.run()
    }
    
    public func insert(table table: String, items: [[String: Binding?]]) {
        for item in items {
            let sql = SQL(operation: .INSERT, table: table)

    }
    public func createTableWith(model: Model) {
        let tableName = model.dynamicType.tableName
        if existingTables.contains(tableName) {
            return
        }
        let propertyDatas = PropertyData.validPropertyDataForObject(model)
        let columnDefinition : (PropertyData) -> (String) = { property in
            var columnDefinition = "\(property.name!) \(property.bindingType!.declaredDatatype)"
