🎨 数据历史文档和资源文件支持分页和搜索 https://github.com/siyuan-note/siyuan/issues/4901

This commit is contained in:
Liang Ding 2022-08-23 10:13:51 +08:00
parent 61f7f717f7
commit f69798f91e
No known key found for this signature in database
GPG key ID: 136F30F901A2231D
3 changed files with 30 additions and 21 deletions

View file

@ -34,6 +34,7 @@ func main() {
go server.Serve(false)
model.InitAppearance()
sql.InitDatabase(false)
sql.InitHistoryDatabase(false)
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
model.SyncData(true, false, false)

View file

@ -48,6 +48,7 @@ func StartKernel(container, appDir, workspaceDir, nativeLibDir, privateDataDir,
go func() {
model.InitAppearance()
sql.InitDatabase(false)
sql.InitHistoryDatabase(false)
sql.SetCaseSensitive(model.Conf.Search.CaseSensitive)
model.SyncData(true, false, false)

View file

@ -144,6 +144,34 @@ func initDBTables() {
if nil != 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")
_, 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.SetMaxOpenConns(20)
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) {