feat: 支持 Option<T> 字段(None↔NULL)、列命名默认原样(Keep)、迁移同名列先删后加,版本 1.1.0

This commit is contained in:
xrain committed 2026-08-21 03:41:53 +08:00
1 parent 132aae865b
commit 394c4a1fb5
14 files changed
+335 -87

No files matched your search

+4 -4
View File
@@ -20,7 +20,7 @@ import std.database.sql.*
*/
public class DatasourceFactory {
/// 默认驱动名(ADO 风格连接串无 scheme 时使用)
public static let DEFAULT_DRIVER = "postgres"
public static let DEFAULT_DRIVER: String = "postgres"
/**
* 由连接字符串创建 Datasource。驱动名自动推断:
@@ -88,7 +88,7 @@ public class DatasourceFactory {
var port = "5432"
var database = ""
var username = ""
var password = ""
var pwd = ""
for (part in connStr.split(";")) {
let seg = part.trimAscii()
if (seg.isEmpty()) {
@@ -103,12 +103,12 @@ public class DatasourceFactory {
case "port" => port = value
case "database" => database = value
case "username" | "user id" | "uid" => username = value
case "password" | "pwd" => password = value
case "password" | "pwd" => pwd = value
case _ => ()
}
case None => ()
}
}
return "${DEFAULT_DRIVER}://${username}:${password}@${host}:${port}/${database}?sslmode=disable"
return "${DEFAULT_DRIVER}://${username}:${pwd}@${host}:${port}/${database}?sslmode=disable"
}
}
+2 -2
View File
@@ -322,7 +322,7 @@ public open class DbContext <: CliContext {
}
/// 执行 COUNT 查询(query 层回调)
internal func count(model: EntityModel, sql: String, params: ArrayList<Any>): Int64 {
internal func count(sql: String, params: ArrayList<Any>): Int64 {
let conn = datasource.connect()
try {
let stmt = conn.prepareStatement(sql)
@@ -529,7 +529,7 @@ public class DbSet<T> <: DbSetBase {
public func query(): QueryBuilder<T> {
QueryBuilder<T>(_model, _context.getDialect(),
{ sql, params => _context.query<T>(_model, sql, params) },
{ sql, params => _context.count(_model, sql, params) })
{ sql, params => _context.count(sql, params) })
}
/// 按主键查询(无结果返回 None)