forked from MTSR/mapserver
tiledb stub
This commit is contained in:
parent
bc223722af
commit
abfb61a12e
11
tiledb/logger.go
Normal file
11
tiledb/logger.go
Normal file
@ -0,0 +1,11 @@
|
||||
package tiledb
|
||||
|
||||
import (
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
var log *logrus.Entry
|
||||
|
||||
func init() {
|
||||
log = logrus.WithFields(logrus.Fields{"prefix": "tiledb"})
|
||||
}
|
58
tiledb/sqlite.go
Normal file
58
tiledb/sqlite.go
Normal file
@ -0,0 +1,58 @@
|
||||
package tiledb
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
"github.com/sirupsen/logrus"
|
||||
"mapserver/coords"
|
||||
"time"
|
||||
)
|
||||
|
||||
const migrateScript = `
|
||||
create table if not exists tiles(
|
||||
data blob,
|
||||
mtime bigint,
|
||||
layer int,
|
||||
x int,
|
||||
y int,
|
||||
zoom int,
|
||||
primary key(x,y,zoom,layer)
|
||||
);
|
||||
`
|
||||
|
||||
type Sqlite3Accessor struct {
|
||||
db *sql.DB
|
||||
filename string
|
||||
}
|
||||
|
||||
func (db *Sqlite3Accessor) Migrate() error {
|
||||
log.WithFields(logrus.Fields{"filename": db.filename}).Info("Migrating database")
|
||||
start := time.Now()
|
||||
_, err := db.db.Exec(migrateScript)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
t := time.Now()
|
||||
elapsed := t.Sub(start)
|
||||
log.WithFields(logrus.Fields{"elapsed": elapsed}).Info("Migration completed")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (db *Sqlite3Accessor) GetTile(pos coords.TileCoords) (*Tile, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (db *Sqlite3Accessor) SetTile(pos coords.TileCoords, tile *Tile) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewSqliteAccessor(filename string) (*Sqlite3Accessor, error) {
|
||||
db, err := sql.Open("sqlite3", filename)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
sq := &Sqlite3Accessor{db: db, filename: filename}
|
||||
return sq, nil
|
||||
}
|
25
tiledb/sqlite_test.go
Normal file
25
tiledb/sqlite_test.go
Normal file
@ -0,0 +1,25 @@
|
||||
package tiledb
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMigrate(t *testing.T) {
|
||||
tmpfile, err := ioutil.TempFile("", "TestMigrateEmpty.*.sqlite")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer os.Remove(tmpfile.Name())
|
||||
|
||||
db, err := NewSqliteAccessor(tmpfile.Name())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
err = db.Migrate()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user