mirror of https://github.com/grafana/grafana
parent
665974e751
commit
0bf45e231d
@ -0,0 +1,53 @@ |
||||
This devenv block spawns a Spanner emulator for Grafana integration tests and development purposes: |
||||
|
||||
``` |
||||
make devenv sources=spanner_tests |
||||
``` |
||||
|
||||
You should then be able to connect to the database using Go SQL Spanner driver. Here's a minimal example: |
||||
|
||||
```go |
||||
package main |
||||
|
||||
import ( |
||||
"log" |
||||
|
||||
_ "github.com/googleapis/go-sql-spanner" |
||||
|
||||
"context" |
||||
"database/sql" |
||||
"fmt" |
||||
) |
||||
|
||||
func main() { |
||||
ctx := context.Background() |
||||
db, err := sql.Open("spanner", fmt.Sprintf("projects/%s/instances/%s/databases/%s", "grafanatest", "grafanatest", "grafanatest")) |
||||
if err != nil { |
||||
log.Fatalf("failed to open database connection: %v", err) |
||||
} |
||||
defer db.Close() |
||||
|
||||
rows, err := db.QueryContext(ctx, "SELECT 'Hello World!'") |
||||
if err != nil { |
||||
log.Fatalf("failed to execute query: %v", err) |
||||
} |
||||
defer rows.Close() |
||||
|
||||
var msg string |
||||
for rows.Next() { |
||||
if err := rows.Scan(&msg); err != nil { |
||||
log.Fatalf("failed to scan row values: %v", err) |
||||
} |
||||
fmt.Printf("%s\n", msg) |
||||
} |
||||
if err := rows.Err(); err != nil { |
||||
log.Fatalf("failed to execute query: %v", err) |
||||
} |
||||
} |
||||
``` |
||||
|
||||
Run it and you should see the "Hello world" message: |
||||
|
||||
``` |
||||
SPANNER_EMULATOR_HOST=localhost:9010 go run example.go |
||||
``` |
@ -0,0 +1,19 @@ |
||||
spannertests: |
||||
image: gcr.io/cloud-spanner-emulator/emulator:1.5.24 |
||||
ports: |
||||
- "9010:9010" |
||||
- "9020:9020" |
||||
spannertests_gcloud: |
||||
image: google/cloud-sdk:509.0.0 |
||||
environment: |
||||
SPANNER_EMULATOR_HOST: spannertests:9010 |
||||
command: |
||||
- /bin/sh |
||||
- -c |
||||
- | |
||||
sleep 5 |
||||
gcloud config set auth/disable_credentials true |
||||
gcloud config set project grafanatest |
||||
gcloud config set api_endpoint_overrides/spanner http://spannertests:9020/ |
||||
gcloud spanner instances create grafanatest --config=emulator-config --description="For integration tests" --nodes=1 |
||||
gcloud spanner databases create --instance grafanatest grafanatest |
Loading…
Reference in new issue