Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: golden/go/db/db.go

Issue 813443002: Overhaul database package (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Comments/readme cleanup Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: golden/go/db/db.go
diff --git a/golden/go/db/db.go b/golden/go/db/db.go
index 99277cc245e92a5fde5d4d82a83aca8224495493..ec7128063742aa859acb4b3358b7de49b058321d 100644
--- a/golden/go/db/db.go
+++ b/golden/go/db/db.go
@@ -2,11 +2,8 @@ package db
import (
"fmt"
- "strings"
- "github.com/golang/glog"
"skia.googlesource.com/buildbot.git/go/database"
- "skia.googlesource.com/buildbot.git/go/metadata"
)
const (
@@ -28,34 +25,19 @@ func MigrationSteps() []database.MigrationStep {
return migrationSteps
}
-// GetConfig returns a DatabaseConfig instance for running in production if a
-// metadata server is available. If 'local' is true it will always
-// set the MySQL connection string to "" and thus use a local SQLite database
-// when used with database.NewVersionedDB.
-func GetConfig(mySQLConnStr string, sqlitePath string, local bool) *database.DatabaseConfig {
- useMySQLConnStr := mySQLConnStr
-
- // We are in the production environment, so we look up the password.
- if !local {
- // First, get the password from the metadata server.
- // See https://developers.google.com/compute/docs/metadata#custom.
- password, err := metadata.Get(METADATA_KEY)
- if err != nil {
- glog.Fatalf("Failed to find metadata. Use 'local' flag when running locally.")
- }
- useMySQLConnStr = fmt.Sprintf(mySQLConnStr, password)
- }
-
- // If there is still a placeholder in the connection string, we
- // set it to empty, so that the the local SQLite database kicks in.
- if strings.Contains(useMySQLConnStr, "%s") {
- useMySQLConnStr = ""
+// DatabaseConfig returns a DatabaseConfig instance. If mySQLConnStr is
+// provided, it overrides all other settings. Otherwise, if 'local' is true
+// a config for a local MySQL database is returned. If 'local' is false, a
+// config appropriate for running in production is returned.
+func DatabaseConfig(mySQLConnStr string, local bool) (*database.DatabaseConfig, error) {
+ if mySQLConnStr != "" {
+ return database.ResolveCustomMySQLString(mySQLConnStr, migrationSteps)
}
- return &database.DatabaseConfig{
- MySQLString: useMySQLConnStr,
- SQLiteFilePath: sqlitePath,
- MigrationSteps: migrationSteps,
+ if local {
+ return database.LocalDatabaseConfig(DEFAULT_DB_NAME, migrationSteps), nil
+ } else {
+ return database.ProdDatabaseConfig(database.AddrFromHostPort(DEFAULT_DB_HOST, DEFAULT_DB_PORT), DEFAULT_DB_NAME, migrationSteps), nil
}
}
@@ -97,17 +79,6 @@ var migrationSteps = []database.MigrationStep{
MySQLDown: []string{
`DROP TABLE expectations`,
},
- SQLiteUp: []string{
- `CREATE TABLE expectations (
- id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- userid TEXT NOT NULL,
- ts BIGINT NOT NULL,
- expectations MEDIUXMTEXT NOT NULL
- )`,
- },
- SQLiteDown: []string{
- `DROP TABLE expectations`,
- },
},
// Use this is a template for more migration steps.
@@ -115,7 +86,5 @@ var migrationSteps = []database.MigrationStep{
// {
// MySQLUp: ,
// MySQLDown: ,
- // SQLiteUp: ,
- // SQLiteDown: ,
// },
}

Powered by Google App Engine
This is Rietveld 408576698