v0.0.0 -> v0.1.0
Summary
go-sqlite 初始版本發布,基於 sqlite3 驅動與 database/sql 建構的輕量級 SQLite ORM,提供連線池管理、Schema Builder 與流暢的查詢建構器 API,與 go-mysql 保持一致的介面設計。
Changes
FEAT
- 新增連線池管理,支援可配置的連線存活時間與自動從路徑推導 key
- 新增 Schema Builder 的
Create()方法,支援欄位定義、主鍵、自動遞增、唯一約束、預設值與外鍵 - 新增 Insert 方法:
Insert()、InsertContext()、InsertReturningID()、InsertContextReturningID() - 新增衝突處理策略:
InsertConflict()支援 IGNORE/REPLACE/ABORT/FAIL/ROLLBACK 模式 - 新增
ON CONFLICT DO UPDATE支援 upsert 操作 - 新增 Select 查詢建構器:
Select()、Where()、OrWhere()、Join()、LeftJoin()、OrderBy()、Limit()、Offset() - 新增查詢執行方法:
Get()、GetContext()回傳*sql.Rows - 新增便捷方法:
First()、FirstContext()、Count()、CountContext() - 新增
Total()視窗函式 (COUNT(*) OVER()) 支援分頁與總數查詢 - 新增 Update 方法:
Update()、UpdateContext()支援 map 資料更新 - 新增欄位修改器:
Increase()、Decrease()、Toggle()支援原子更新 - 新增原始查詢包裝:
Database.Query()、Database.QueryContext()、Database.Exec()、Database.ExecContext()
REFACTOR
- 將單檔結構拆分為模組化元件:instance.go、builder.go、insert.go、select.go、select_ext.go、select_where.go、select_or_where.go、update.go、utils.go
- 將欄位驗證與引號邏輯抽離至 utils.go,提供
validateColumn()與quote() - 統一 ForeignKey 為結構型別 (
Foreign) 以簡化 API - 新增查詢執行後自動清除 Builder 狀態的
builderClear() - 移除測試用 main 函式,強化連線初始化的 nil check 與 ping 驗證
Files Changed
| File | Status | Tag |
|---|---|---|
instance.go |
Added | FEAT |
builder.go |
Added | FEAT |
insert.go |
Added | FEAT |
select.go |
Added | FEAT |
select_ext.go |
Added | FEAT |
select_where.go |
Added | FEAT |
select_or_where.go |
Added | FEAT |
update.go |
Added | FEAT |
utils.go |
Added | REFACTOR |
main_test.go |
Added | TEST |
README.md |
Added | DOC |
.gitignore |
Modified | CHORE |
main.go |
Deleted | REMOVE |
©️ 2026 邱敬幃 Pardn Chiu
Top comments (0)