Restructure a bit
This commit is contained in:
parent
888a87ab86
commit
adbb1216af
4 changed files with 72 additions and 3 deletions
9
internal/pilgrim_common/db_adapter.go
Normal file
9
internal/pilgrim_common/db_adapter.go
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
package pilgrim_common
|
||||||
|
|
||||||
|
type PilgrimDbAdapter interface {
|
||||||
|
Up()
|
||||||
|
Down()
|
||||||
|
ValidateChecksums()
|
||||||
|
ValidateLatest()
|
||||||
|
ValidateMigrationOrder()
|
||||||
|
}
|
52
internal/pilgrim_core/pilgrim.go
Normal file
52
internal/pilgrim_core/pilgrim.go
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
package pilgrim_core
|
||||||
|
|
||||||
|
import (
|
||||||
|
"mvvasilev.dev/pilgrim/internal/pilgrim_common"
|
||||||
|
"mvvasilev.dev/pilgrim/internal/pilgrim_conf"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Pilgrim interface {
|
||||||
|
Context() pilgrim_conf.PilgrimConfigurationRetriever
|
||||||
|
Execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
type pilgrimImpl struct {
|
||||||
|
ctx pilgrim_conf.PilgrimConfigurationRetriever
|
||||||
|
dbAdapter pilgrim_common.PilgrimDbAdapter
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewPilgrim(ctx pilgrim_conf.PilgrimConfigurationRetriever) *pilgrimImpl {
|
||||||
|
p := new(pilgrimImpl)
|
||||||
|
|
||||||
|
p.ctx = ctx
|
||||||
|
p.dbAdapter = createAdapter(ctx.UrlParts().Driver)
|
||||||
|
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func createAdapter(driver pilgrim_conf.DbDriver) pilgrim_common.PilgrimDbAdapter {
|
||||||
|
switch driver {
|
||||||
|
case pilgrim_conf.DbDriver_MSSQL:
|
||||||
|
panic("Not implemented")
|
||||||
|
case pilgrim_conf.DbDriver_MariaDB:
|
||||||
|
panic("Not implemented")
|
||||||
|
case pilgrim_conf.DbDriver_MySQL:
|
||||||
|
panic("Not implemented")
|
||||||
|
case pilgrim_conf.DbDriver_Oracle:
|
||||||
|
panic("Not implemented")
|
||||||
|
case pilgrim_conf.DbDriver_Postgres:
|
||||||
|
panic("Not implemented")
|
||||||
|
case pilgrim_conf.DbDriver_SQLite:
|
||||||
|
panic("Not implemented")
|
||||||
|
default:
|
||||||
|
panic("Not implemented")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *pilgrimImpl) Context() pilgrim_conf.PilgrimConfigurationRetriever {
|
||||||
|
return p.ctx
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *pilgrimImpl) Execute() {
|
||||||
|
// TODO
|
||||||
|
}
|
7
internal/pilgrim_db/postgres_adapter.go
Normal file
7
internal/pilgrim_db/postgres_adapter.go
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
package pilgrim_db
|
||||||
|
|
||||||
|
import "mvvasilev.dev/pilgrim/internal/pilgrim_conf"
|
||||||
|
|
||||||
|
type postgresDbAdapter struct {
|
||||||
|
ctx pilgrim_conf.PilgrimConfigurationRetriever
|
||||||
|
}
|
7
main.go
7
main.go
|
@ -1,9 +1,8 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
|
||||||
|
|
||||||
"mvvasilev.dev/pilgrim/internal/pilgrim_conf"
|
"mvvasilev.dev/pilgrim/internal/pilgrim_conf"
|
||||||
|
"mvvasilev.dev/pilgrim/internal/pilgrim_core"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -12,5 +11,7 @@ func main() {
|
||||||
pilgrim_conf.NewEnvVarContext(),
|
pilgrim_conf.NewEnvVarContext(),
|
||||||
)
|
)
|
||||||
|
|
||||||
log.Println(pilgrimContext)
|
pilgrim := pilgrim_core.NewPilgrim(pilgrimContext)
|
||||||
|
|
||||||
|
pilgrim.Execute()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue