mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-03 10:31:10 +08:00
🎨 数据历史文档和资源文件支持分页和搜索 https://github.com/siyuan-note/siyuan/issues/4901
This commit is contained in:
parent
61f7f717f7
commit
f69798f91e
@ -34,6 +34,7 @@ func main() {
|
|||||||
go server.Serve(false)
|
go server.Serve(false)
|
||||||
model.InitAppearance()
|
model.InitAppearance()
|
||||||
sql.InitDatabase(false)
|
sql.InitDatabase(false)
|
||||||
|
sql.InitHistoryDatabase(false)
|
||||||
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
|
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
|
||||||
|
|
||||||
model.SyncData(true, false, false)
|
model.SyncData(true, false, false)
|
||||||
|
@ -48,6 +48,7 @@ func StartKernel(container, appDir, workspaceDir, nativeLibDir, privateDataDir,
|
|||||||
go func() {
|
go func() {
|
||||||
model.InitAppearance()
|
model.InitAppearance()
|
||||||
sql.InitDatabase(false)
|
sql.InitDatabase(false)
|
||||||
|
sql.InitHistoryDatabase(false)
|
||||||
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
|
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
|
||||||
|
|
||||||
model.SyncData(true, false, false)
|
model.SyncData(true, false, false)
|
||||||
|
@ -144,6 +144,34 @@ func initDBTables() {
|
|||||||
if nil != err {
|
if nil != err {
|
||||||
logging.LogFatalf("create table [refs] failed: %s", err)
|
logging.LogFatalf("create table [refs] failed: %s", err)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func InitHistoryDatabase(forceRebuild bool) {
|
||||||
|
if !forceRebuild && gulu.File.IsExist(util.HistoryDBPath) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if nil != historyDB {
|
||||||
|
historyDB.Close()
|
||||||
|
}
|
||||||
|
dsn := util.HistoryDBPath + "?_journal_mode=OFF" +
|
||||||
|
"&_synchronous=OFF" +
|
||||||
|
"&_secure_delete=OFF" +
|
||||||
|
"&_cache_size=-20480" +
|
||||||
|
"&_page_size=8192" +
|
||||||
|
"&_busy_timeout=7000" +
|
||||||
|
"&_ignore_check_constraints=ON" +
|
||||||
|
"&_temp_store=MEMORY" +
|
||||||
|
"&_case_sensitive_like=OFF" +
|
||||||
|
"&_locking_mode=EXCLUSIVE"
|
||||||
|
var err error
|
||||||
|
historyDB, err = sql.Open("sqlite3_extended", dsn)
|
||||||
|
if nil != err {
|
||||||
|
logging.LogFatalf("create database failed: %s", err)
|
||||||
|
}
|
||||||
|
historyDB.SetMaxIdleConns(1)
|
||||||
|
historyDB.SetMaxOpenConns(1)
|
||||||
|
historyDB.SetConnMaxLifetime(365 * 24 * time.Hour)
|
||||||
|
|
||||||
historyDB.Exec("DROP TABLE history_fts_case_insensitive")
|
historyDB.Exec("DROP TABLE history_fts_case_insensitive")
|
||||||
_, err = db.Exec("CREATE VIRTUAL TABLE history_fts_case_insensitive USING fts5(type UNINDEXED, op UNINDEXED, title, content, created UNINDEXED, path UNINDEXED, tokenize=\"siyuan case_insensitive\")")
|
_, err = db.Exec("CREATE VIRTUAL TABLE history_fts_case_insensitive USING fts5(type UNINDEXED, op UNINDEXED, title, content, created UNINDEXED, path UNINDEXED, tokenize=\"siyuan case_insensitive\")")
|
||||||
@ -201,27 +229,6 @@ func initDBConnection() {
|
|||||||
db.SetMaxIdleConns(20)
|
db.SetMaxIdleConns(20)
|
||||||
db.SetMaxOpenConns(20)
|
db.SetMaxOpenConns(20)
|
||||||
db.SetConnMaxLifetime(365 * 24 * time.Hour)
|
db.SetConnMaxLifetime(365 * 24 * time.Hour)
|
||||||
|
|
||||||
if nil != historyDB {
|
|
||||||
historyDB.Close()
|
|
||||||
}
|
|
||||||
dsn = util.HistoryDBPath + "?_journal_mode=OFF" +
|
|
||||||
"&_synchronous=OFF" +
|
|
||||||
"&_secure_delete=OFF" +
|
|
||||||
"&_cache_size=-20480" +
|
|
||||||
"&_page_size=8192" +
|
|
||||||
"&_busy_timeout=7000" +
|
|
||||||
"&_ignore_check_constraints=ON" +
|
|
||||||
"&_temp_store=MEMORY" +
|
|
||||||
"&_case_sensitive_like=OFF" +
|
|
||||||
"&_locking_mode=EXCLUSIVE"
|
|
||||||
historyDB, err = sql.Open("sqlite3_extended", dsn)
|
|
||||||
if nil != err {
|
|
||||||
logging.LogFatalf("create database failed: %s", err)
|
|
||||||
}
|
|
||||||
historyDB.SetMaxIdleConns(1)
|
|
||||||
historyDB.SetMaxOpenConns(1)
|
|
||||||
historyDB.SetConnMaxLifetime(365 * 24 * time.Hour)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetCaseSensitive(b bool) {
|
func SetCaseSensitive(b bool) {
|
||||||
|
Loading…
Reference in New Issue
Block a user