blob: f88a8b3a3be7800792acc57a181e5e337cff0848 [file] [log] [blame]
// This application creates the 'coverage' database on a local CockroachDB instance
// and also applies the latest schema.
package main
import (
"context"
"flag"
"fmt"
"github.com/jackc/pgx/v4/pgxpool"
"go.skia.org/infra/go/coverage/config"
coverageschema "go.skia.org/infra/go/coverage/coveragestore/sqlcoveragestore/coverageschema"
"go.skia.org/infra/go/sklog"
)
func main() {
sklog.Debug("Running Demo...")
ctx := context.Background()
flag.Parse()
var coverageConfig config.CoverageConfig
config, err := coverageConfig.LoadCoverageConfig("demo.json")
if err != nil {
sklog.Fatal(err)
}
databaseName := config.GetDatabaseName()
connectionString := config.GetConnectionString()
// Connect to database.
conn, err := pgxpool.Connect(ctx, connectionString)
if err != nil {
sklog.Fatal(err)
}
// Create the database.
_, err = conn.Exec(ctx, fmt.Sprintf(`CREATE DATABASE %s;`, databaseName))
if err != nil {
sklog.Infof("Database %s already exists.", databaseName)
}
_, err = conn.Exec(ctx, fmt.Sprintf(`SET DATABASE = %s;`, databaseName))
if err != nil {
sklog.Fatal(err)
}
// Apply the schema.
_, err = conn.Exec(ctx, coverageschema.Schema)
if err != nil {
sklog.Fatal(err)
}
conn.Close()
}