in src/middleware/db.go [38:80]
func (s *SQLStorage) Init(user, password, host, name, conn string) error {
var err error
instanceConnectionName := conn
s.log("Opening connection")
if password == "" {
s.log("method is service account")
trimmedUser := strings.ReplaceAll(user, ".gserviceaccount.com", "")
if s.db, err = connectWithConnector(trimmedUser, password, name, instanceConnectionName); err != nil {
return fmt.Errorf("could not open connection using Service Account: %s", err)
}
} else {
s.log("method is database user")
if s.db, err = connectDirect(user, password, name, host); err != nil {
return fmt.Errorf("could open connection using username/password: %s", err)
}
}
s.log("Connection opened")
s.log("Pinging")
if err := s.db.Ping(); err != nil {
return fmt.Errorf("could not ping database: %s", err)
}
s.log("Pinging complete")
populated, err := s.SchemaExists()
if err != nil {
return fmt.Errorf("schema exists failure: %s", err)
}
if !populated {
s.log("populating schema")
if err := s.SchemaInit(); err != nil {
return fmt.Errorf("cannot populate schema: %s", err)
}
}
s.log("Schema populated")
return nil
}