Documentation
¶
Index ¶
- Constants
- func NewEmulator(ctx context.Context, options ...Option) (emulator *gcloud.GCloudContainer, teardown func(), err error)
- type Clients
- type Option
- func DisableAutoConfig() Option
- func EnableAutoConfig() Option
- func EnableDatabaseAutoConfigOnly() Option
- func EnableFaultInjection() Option
- func EnableInstanceAutoConfigOnly() Option
- func WithClientConfig(config spanner.ClientConfig) Option
- func WithClientOptionsForClient(option ...option.ClientOption) Option
- func WithContainerCustomizers(containerCustomizers ...testcontainers.ContainerCustomizer) Option
- func WithDatabaseDialect(dialect databasepb.DatabaseDialect) Option
- func WithDatabaseID(databaseID string) Option
- func WithEmulatorImage(image string) Option
- func WithInstanceID(instanceID string) Option
- func WithProjectID(projectID string) Option
- func WithRandomDatabaseID() Option
- func WithRandomInstanceID() Option
- func WithRandomProjectID() Option
- func WithSetupDDLs(ddls []string) Option
- func WithSetupDMLs(dmls []spanner.Statement) Option
- func WithSetupRawDMLs(rawDMLs []string) Option
- func WithoutRandomDatabaseID() Option
- func WithoutRandomInstanceID() Option
- func WithoutRandomProjectID() Option
Examples ¶
Constants ¶
const ( DefaultEmulatorImage = "gcr.io/cloud-spanner-emulator/emulator:1.5.28" DefaultProjectID = "emulator-project" DefaultInstanceID = "emulator-instance" DefaultDatabaseID = "emulator-database" )
Variables ¶
This section is empty.
Functions ¶
func NewEmulator ¶
func NewEmulator(ctx context.Context, options ...Option) (emulator *gcloud.GCloudContainer, teardown func(), err error)
NewEmulator initializes Cloud Spanner Emulator. The emulator will be closed when teardown is called. You should call it.
Types ¶
type Clients ¶
type Clients struct { InstanceClient *instance.InstanceAdminClient DatabaseClient *database.DatabaseAdminClient Client *spanner.Client ProjectID, InstanceID, DatabaseID string }
Clients struct is container of Spanner clients.
func NewClients ¶ added in v0.2.0
func NewClients(ctx context.Context, emulator *gcloud.GCloudContainer, options ...Option) (clients *Clients, teardown func(), err error)
NewClients setup existing Cloud Spanner Emulator with Spanner clients. The clients will be closed when teardown is called. You should call it.
func NewEmulatorWithClients ¶
func NewEmulatorWithClients(ctx context.Context, options ...Option) (emulator *gcloud.GCloudContainer, clients *Clients, teardown func(), err error)
NewEmulatorWithClients initializes Cloud Spanner Emulator with Spanner clients. The emulator and clients will be closed when teardown is called. You should call it.
Example ¶
package main import ( "context" "fmt" "log" "cloud.google.com/go/spanner" "github.com/apstndb/spanemuboost" ) func main() { ctx := context.Background() _, clients, teardown, err := spanemuboost.NewEmulatorWithClients(ctx) if err != nil { log.Fatalln(err) return } defer teardown() err = clients.Client.Single().Query(ctx, spanner.NewStatement("SELECT 1")).Do(func(r *spanner.Row) error { fmt.Println(r) return nil }) if err != nil { log.Fatalln(err) } }
Output: {fields: [type:{code:INT64}], values: [string_value:"1"]}
func (*Clients) DatabasePath ¶ added in v0.2.2
func (*Clients) InstancePath ¶ added in v0.2.2
func (*Clients) ProjectPath ¶ added in v0.2.2
type Option ¶
type Option func(*emulatorOptions) error
func DisableAutoConfig ¶
func DisableAutoConfig() Option
DisableAutoConfig disables auto config.(default enable)
func EnableAutoConfig ¶
func EnableAutoConfig() Option
EnableAutoConfig enables auto config.(default enable)
func EnableDatabaseAutoConfigOnly ¶ added in v0.2.0
func EnableDatabaseAutoConfigOnly() Option
func EnableFaultInjection ¶ added in v0.2.5
func EnableFaultInjection() Option
EnableFaultInjection enables fault injection of Cloud Spanner Emulator.
func EnableInstanceAutoConfigOnly ¶ added in v0.2.0
func EnableInstanceAutoConfigOnly() Option
func WithClientConfig ¶ added in v0.2.0
func WithClientConfig(config spanner.ClientConfig) Option
WithClientConfig sets spanner.ClienConfig for NewClients and NewEmulatorWithClients.
func WithClientOptionsForClient ¶ added in v0.2.5
func WithClientOptionsForClient(option ...option.ClientOption) Option
WithClientOptionsForClient configures ClientOption for Clients.Client.
func WithContainerCustomizers ¶ added in v0.2.5
func WithContainerCustomizers(containerCustomizers ...testcontainers.ContainerCustomizer) Option
WithContainerCustomizers sets any testcontainers.ContainerCustomizer
func WithDatabaseDialect ¶
func WithDatabaseDialect(dialect databasepb.DatabaseDialect) Option
WithDatabaseDialect configures the database dialect.
func WithDatabaseID ¶
WithDatabaseID configures the database ID. Empty string resets to default.
func WithEmulatorImage ¶
WithEmulatorImage configures the Spanner Emulator container image. Empty string will be ignored.
func WithInstanceID ¶
WithInstanceID configures the instance ID. Empty string resets to default.
func WithProjectID ¶
WithProjectID configures the project ID. Empty string resets to default.
func WithRandomDatabaseID ¶ added in v0.2.3
func WithRandomDatabaseID() Option
WithRandomDatabaseID enables the random database ID. Default is disabled.
func WithRandomInstanceID ¶ added in v0.2.4
func WithRandomInstanceID() Option
WithRandomInstanceID enables the random instance ID. Default is disabled.
func WithRandomProjectID ¶ added in v0.2.4
func WithRandomProjectID() Option
WithRandomProjectID enables the random project ID. Default is disabled.
func WithSetupDDLs ¶
WithSetupDDLs sets DDLs to be executed. Note: comments are not permitted.
func WithSetupDMLs ¶
WithSetupDMLs sets DMLs in spanner.Statement to be executed.
func WithSetupRawDMLs ¶
WithSetupRawDMLs sets string DMLs to be executed.
func WithoutRandomDatabaseID ¶ added in v0.2.4
func WithoutRandomDatabaseID() Option
WithoutRandomDatabaseID disables the random database ID. Default is disabled.
func WithoutRandomInstanceID ¶ added in v0.2.4
func WithoutRandomInstanceID() Option
WithoutRandomInstanceID disables the random instance ID. Default is disabled.
func WithoutRandomProjectID ¶ added in v0.2.4
func WithoutRandomProjectID() Option
WithoutRandomProjectID disables the random project ID. Default is disabled.