在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:ipfs/go-ds-sql开源软件地址:https://github.com/ipfs/go-ds-sql开源编程语言:Go 100.0%开源软件介绍:SQL DatastoreAn implementation of the datastore interface that can be backed by any sql database. Installgo get github.com/ipfs/go-ds-sql UsagePostgreSQLEnsure a database is created and a table exists with CREATE TABLE IF NOT EXISTS table_name (key TEXT NOT NULL UNIQUE, data BYTEA) It's recommended to create an index on the CREATE INDEX IF NOT EXISTS table_name_key_text_pattern_ops_idx ON table_name (key text_pattern_ops) Import and use in your application: import (
"database/sql"
"github.com/ipfs/go-ds-sql"
pg "github.com/ipfs/go-ds-sql/postgres"
)
mydb, _ := sql.Open("yourdb", "yourdbparameters")
// Implement the Queries interface for your SQL impl.
// ...or use the provided PostgreSQL queries
queries := pg.NewQueries("blocks")
ds := sqlds.NewDatastore(mydb, queries) SQLiteThe SQLite wrapper tries to create the table automatically Prefix scans are optimized by using GLOB Import and use in your application: package main
import (
sqliteds "github.com/ipfs/go-ds-sql/sqlite"
_ "github.com/mattn/go-sqlite3"
)
func main() {
opts := &sqliteds.Options{
DSN: "db.sqlite",
}
ds, err := opts.Create()
if err != nil {
panic(err)
}
defer func() {
if err := ds.Close(); err != nil {
panic(err)
}
}()
} If no SQLCipherThe SQLite wrapper also supports the SQLCipher extension Import and use in your application: package main
import (
sqliteds "github.com/ipfs/go-ds-sql/sqlite"
_ "github.com/mutecomm/go-sqlcipher/v4"
)
func main() {
opts := &sqliteds.Options{
DSN: "encdb.sqlite",
Key: ([]byte)("32_very_secure_bytes_0123456789a"),
}
ds, err := opts.Create()
if err != nil {
panic(err)
}
defer func() {
if err := ds.Close(); err != nil {
panic(err)
}
}()
} APIContributeFeel free to dive in! Open an issue or submit PRs. License |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论