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