Skip to content

Datastore

The Datastore component is responsible for holding metadata about jobs, tasks and worker nodes.


Out of the box, Tork supports Postgres as a Datastore implementation.

To register a custom Datastore implementation follow the instructions on the Extending Tork guide to get Tork running in embedded mode.

Update your main function to make use of the engine.RegisterDatastoreProvider hook:

func main() {
if err := conf.LoadConfig(); err != nil {
fmt.Println(err)
os.Exit(1)
}
engine.RegisterDatastoreProvider("mydb", func() (datastore.Datastore, error) {
// example of using config
// url := conf.String("datastore.mydb.url")
return nil, errors.New("not implemented yet")
})
if err := cli.New().Run(); err != nil {
fmt.Println(err)
os.Exit(1)
}
}

Update your config file to make use of your implementation:

[datastore]
type = mydb
[datastore.mydb]
url = mydb://user@password:localhost