48da8baab5
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
38 lines
759 B
Go
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
|
|
}
|
|
}
|