github.com/jingruilea/kubeedge@v1.2.0-beta.0.0.20200410162146-4bb8902b3879/edge/pkg/common/dbm/db.go (about) 1 package dbm 2 3 import ( 4 "sync" 5 6 "github.com/astaxie/beego/orm" 7 8 //Blank import to run only the init function 9 _ "github.com/mattn/go-sqlite3" 10 "k8s.io/klog" 11 ) 12 13 // DBAccess is Ormer object interface for all transaction processing and switching database 14 var DBAccess orm.Ormer 15 var once sync.Once 16 17 // InitDBConfig Init DB info 18 func InitDBConfig(driverName, dbName, dataSource string) { 19 once.Do(func() { 20 if err := orm.RegisterDriver(driverName, orm.DRSqlite); err != nil { 21 klog.Fatalf("Failed to register driver: %v", err) 22 } 23 if err := orm.RegisterDataBase( 24 dbName, 25 driverName, 26 dataSource); err != nil { 27 klog.Fatalf("Failed to register db: %v", err) 28 } 29 // sync database schema 30 if err := orm.RunSyncdb(dbName, false, true); err != nil { 31 klog.Errorf("run sync db error %v", err) 32 } 33 // create orm 34 DBAccess = orm.NewOrm() 35 if err := DBAccess.Using(dbName); err != nil { 36 klog.Errorf("Using db access error %v", err) 37 } 38 }) 39 }