Add new infrastructure for migrator

This commit is contained in:
TeoV
2018-05-09 07:51:39 -04:00
committed by Dan Christian Bogos
parent 6dd58efd29
commit 3bc1cd511a
34 changed files with 291 additions and 410 deletions

View File

@@ -20,13 +20,11 @@ package migrator
import (
"database/sql"
"fmt"
"time"
"github.com/cgrates/cgrates/engine"
"github.com/cgrates/cgrates/utils"
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
)
type migratorSQL struct {
@@ -35,19 +33,7 @@ type migratorSQL struct {
rowIter *sql.Rows
}
func newSqlStorage(host, port, name, user, password string) (*sqlStorage, error) {
connectString := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&loc=Local&parseTime=true&sql_mode='ALLOW_INVALID_DATES,NO_AUTO_CREATE_USER'", user, password, host, port, name)
db, err := gorm.Open("mysql", connectString)
if err != nil {
return nil, err
}
if err = db.DB().Ping(); err != nil {
return nil, err
}
return &sqlStorage{Db: db.DB(), db: db}, nil
}
func (sqlStorage *sqlStorage) getV1CDR() (v1Cdr *v1Cdrs, err error) {
func (sqlStorage *migratorSQL) getV1CDR() (v1Cdr *v1Cdrs, err error) {
if sqlStorage.rowIter == nil {
sqlStorage.rowIter, err = sqlStorage.Db.Query("SELECT * FROM cdrs")
if err != nil {
@@ -66,7 +52,7 @@ func (sqlStorage *sqlStorage) getV1CDR() (v1Cdr *v1Cdrs, err error) {
return v1Cdr, nil
}
func (sqlStorage *sqlStorage) setV1CDR(v1Cdr *v1Cdrs) (err error) {
func (sqlStorage *migratorSQL) setV1CDR(v1Cdr *v1Cdrs) (err error) {
tx := sqlStorage.db.Begin()
cdrSql := v1Cdr.AsCDRsql()
cdrSql.CreatedAt = time.Now()
@@ -78,7 +64,7 @@ func (sqlStorage *sqlStorage) setV1CDR(v1Cdr *v1Cdrs) (err error) {
return nil
}
func (sqlStorage *sqlStorage) getSMCost() (v2Cost *v2SessionsCost, err error) {
func (sqlStorage *migratorSQL) getSMCost() (v2Cost *v2SessionsCost, err error) {
if sqlStorage.rowIter == nil {
sqlStorage.rowIter, err = sqlStorage.Db.Query("SELECT * FROM sessions_costs")
if err != nil {
@@ -97,7 +83,7 @@ func (sqlStorage *sqlStorage) getSMCost() (v2Cost *v2SessionsCost, err error) {
return v2Cost, nil
}
func (sqlStorage *sqlStorage) setSMCost(v2Cost *v2SessionsCost) (err error) {
func (sqlStorage *migratorSQL) setSMCost(v2Cost *v2SessionsCost) (err error) {
tx := sqlStorage.db.Begin()
smSql := v2Cost.AsSessionsCostSql()
smSql.CreatedAt = time.Now()
@@ -109,7 +95,7 @@ func (sqlStorage *sqlStorage) setSMCost(v2Cost *v2SessionsCost) (err error) {
return
}
func (sqlStorage *sqlStorage) remSMCost(v2Cost *v2SessionsCost) (err error) {
func (sqlStorage *migratorSQL) remSMCost(v2Cost *v2SessionsCost) (err error) {
tx := sqlStorage.db.Begin()
var rmParam *engine.SessionsCostsSQL
if v2Cost != nil {