Go

go-sqlite3的 包装器允许Go程序与已安装的SQLite3数据库引擎进行交互。


使用说明

首先,按照说明编译和安装LiteSync或使用针对您的平台的预编译二进制文件。

然后下载并编译go-sqlite3使用参数:--tags libsqlite3

此参数将使其使用已安装的包含LiteSync的SQLite库。

有关更多信息,请参阅 go-sqlite3 资料库。



使用方法
package main

import (
  "database/sql"
  _ "github.com/litesync/go-sqlite3"
  "github.com/buger/jsonparser"
  "time"
)

func main() {
  db, err := sql.Open("sqlite3", "file:test.db?node=secondary&connect=tcp://127.0.0.1:1234")
  if err != nil {
    println("failed to open the database: " + err.Error())
    return
  }
        
  // check if the db is ready
  for {
    rows, err := db.Query("PRAGMA sync_status")
    if err != nil {
      println("failed to get sync_status: " + err.Error())
      return
    }
    rows.Next()
    var result string
    err = rows.Scan(&result)
    if err != nil {
      println("failed to scan the result: " + err.Error())
      return
    }
    rows.Close()
    println(result)
    isReady, _ := jsonparser.GetBoolean([]byte(result), "db_is_ready")
    if isReady {
      break
    }
    time.Sleep(1000 * time.Millisecond)
  }

  // now we can access the db
  println("OK, ready!")
}


检查使用方法 示例