12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package db
- import (
- "os"
- "path/filepath"
- "gorm.io/driver/sqlite"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- )
- // sqliteConnector for initializing and
- // connecting to a sqlite database.
- type sqliteConnector struct{}
- // sqliteConnector.connect connects and
- // initializes a connection to sqlite.
- func (s *sqliteConnector) connect() (*gorm.DB, error) {
- // ensure data dir exists.
- _, err := os.Stat("data")
- if err != nil {
- if os.IsNotExist(err) {
- err = os.Mkdir("data", 0700)
- if err != nil {
- return nil, err
- }
- } else {
- return nil, err
- }
- }
- dbFilePath := filepath.Join("data", "netmaker.db")
- // ensure netmaker_v1.db exists.
- _, err = os.Stat(dbFilePath)
- if err != nil {
- if os.IsNotExist(err) {
- file, err := os.Create(dbFilePath)
- if err != nil {
- return nil, err
- }
- err = file.Close()
- if err != nil {
- return nil, err
- }
- } else {
- return nil, err
- }
- }
- return gorm.Open(sqlite.Open(dbFilePath), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Silent),
- })
- }
|