From d39a8fa12478fffde7382bbae39738aab8db3903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=9B=E8=B5=8F?= Date: Tue, 15 Aug 2017 11:23:17 +0800 Subject: [PATCH 1/3] Update Package.swift --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index 88fbda8..c43d049 100644 --- a/Package.swift +++ b/Package.swift @@ -6,7 +6,7 @@ let package = Package( targets: [], dependencies: [ .Package(url: "https://github.com/PerfectlySoft/Perfect-MySQL.git", majorVersion: 2), - .Package(url: "https://github.com/SwiftORM/StORM.git", majorVersion: 1), + .Package(url: "https://github.com/josercc/StORM.git", majorVersion: 1), .Package(url: "https://github.com/PerfectlySoft/Perfect-Logger.git", majorVersion: 1), ] ) From 75f1ab0a1c5a46f3c5bc8ece05463c948fd0bbf4 Mon Sep 17 00:00:00 2001 From: 15038777234 <15038777234@163.com> Date: Tue, 15 Aug 2017 14:17:42 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E8=A1=A8?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=8D=E5=8C=85=E5=90=AB=E7=88=B6?= =?UTF-8?q?=E7=B1=BB=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/MySQLStORM.swift | 67 +++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/Sources/MySQLStORM.swift b/Sources/MySQLStORM.swift index 4e68e65..129a538 100644 --- a/Sources/MySQLStORM.swift +++ b/Sources/MySQLStORM.swift @@ -265,42 +265,39 @@ open class MySQLStORM: StORM, StORMProtocol { var createStatement = str if str.characters.count == 0 { var opt = [String]() - var keyName = "" - for child in Mirror(reflecting: self).children { - guard let key = child.label else { - continue - } - var verbage = "" - if !key.hasPrefix("internal_") && !key.hasPrefix("_") { - verbage = "`\(key)` " - if child.value is Int && opt.count == 0 { - verbage += "int" - } else if child.value is Int { - verbage += "int" - } else if child.value is Bool { - verbage += "int" // MySQL has no bool type - } else if child.value is Double { - verbage += "float" - } else if child.value is UInt || child.value is UInt8 || child.value is UInt16 || child.value is UInt32 || child.value is UInt64 { - verbage += "blob" - } else { - verbage += "text" - } - if opt.count == 0 { - if child.value is Int { - verbage = "`\(key)` int NOT NULL AUTO_INCREMENT" - } else { - verbage = "`\(key)` varchar(255) NOT NULL" - } - keyName = key - } - opt.append(verbage) - } + let mirrorData = StORMMirrorData.mirror(mirror: Mirror(reflecting: self)) + var verbage = "" + for child in mirrorData.childs { + verbage = "`\(child.label)` " + if child.value is Int && opt.count == 0 { + verbage += "int" + } else if child.value is Int { + verbage += "int" + } else if child.value is Bool { + verbage += "int" // MySQL has no bool type + } else if child.value is Double { + verbage += "float" + } else if child.value is UInt || child.value is UInt8 || child.value is UInt16 || child.value is UInt32 || child.value is UInt64 { + verbage += "blob" + } else { + verbage += "text" + } + + opt.append(verbage) } - let keyComponent = ", PRIMARY KEY (`\(keyName)`)" - - createStatement = "CREATE TABLE IF NOT EXISTS \(table()) (\(opt.joined(separator: ", "))\(keyComponent));" - if StORMdebug { LogFile.info("createStatement: \(createStatement)", logFile: "./StORMlog.txt") } + if let primary = mirrorData.primary { + if primary.value is Int || primary.value is Int32 { + verbage = "`\(primary.label)` int NOT NULL AUTO_INCREMENT" + } else { + verbage = "`\(primary.label)` varchar(255) NOT NULL" + } + opt.insert(verbage, at: 0) + let keyComponent = ", PRIMARY KEY (`\(primary.label)`)" + createStatement = "CREATE TABLE IF NOT EXISTS \(table()) (\(opt.joined(separator: ", "))\(keyComponent));" + if StORMdebug { LogFile.info("createStatement: \(createStatement)", logFile: "./StORMlog.txt") } + } else { + LogFile.error("Con't find Primary Key") + } } do { try sql(createStatement, params: []) From c28b059d0b6198bb3bb3cf682ed03f9f0526efec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=9B=E8=B5=8F?= Date: Tue, 15 Aug 2017 17:10:58 +0800 Subject: [PATCH 3/3] Update Package.swift --- Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index c43d049..88fbda8 100644 --- a/Package.swift +++ b/Package.swift @@ -6,7 +6,7 @@ let package = Package( targets: [], dependencies: [ .Package(url: "https://github.com/PerfectlySoft/Perfect-MySQL.git", majorVersion: 2), - .Package(url: "https://github.com/josercc/StORM.git", majorVersion: 1), + .Package(url: "https://github.com/SwiftORM/StORM.git", majorVersion: 1), .Package(url: "https://github.com/PerfectlySoft/Perfect-Logger.git", majorVersion: 1), ] )