storj/private/dbutil/dbimplementation.go
Jeff Wendling 48da8baab5 storj-sim: work with cockroach:// urls for satellite databases
for storj-sim to work, we need to avoid schemas in cockroach urls
so we have storj-sim create namespaced databases instead of schemas
and we have the migrate command create the database in the same way
that it would create a schema for postgres. then it works!

a follow up commit will move the creation of the database/schemas
into storj-sim's setup step so that we can avoid doing these icky
creations during normal migration calls. it will also make the
pointerdb have an explicit call to migrate instead of just doing
it every time it's opened.

Change-Id: If69ef5cb96b6866b0438c761bd445afb3597ae5f
2019-12-09 23:44:00 +00:00

38 lines
759 B
Go

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package dbutil
// Implementation type of valid DBs
type Implementation int
const (
// Unknown is an unknown db type
Unknown Implementation = iota
// Postgres is a Postgresdb type
Postgres
// Cockroach is a Cockroachdb type
Cockroach
// Bolt is a Bolt kv store
Bolt
// Redis is a Redis kv store
Redis
)
// ImplementationForScheme returns the Implementation that is used for
// the url with the provided scheme.
func ImplementationForScheme(scheme string) Implementation {
switch scheme {
case "postgres", "postgresql":
return Postgres
case "cockroach":
return Cockroach
case "bolt":
return Bolt
case "redis":
return Redis
default:
return Unknown
}
}