Method: projects.instances.databases.create

Creates a new Spanner database and starts to prepare it for serving. The returned long-running operation will have a name of the format <database_name>/operations/<operationId> and can be used to track preparation of the database. The metadata field type is CreateDatabaseMetadata. The response field type is Database, if successful.

HTTP request

POST https://spanner.googleapis.com/v1/{parent=projects/*/instances/*}/databases

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
parent

string

Required. The name of the instance that will serve the new database. Values are of the form projects/<project>/instances/<instance>.

Authorization requires the following IAM permission on the specified resource parent:

  • spanner.databases.create

Request body

The request body contains data with the following structure:

JSON representation
{
  "createStatement": string,
  "extraStatements": [
    string
  ],
  "encryptionConfig": {
    object (EncryptionConfig)
  },
  "databaseDialect": enum (DatabaseDialect),
  "protoDescriptors": string
}
Fields
createStatement

string

Required. A CREATE DATABASE statement, which specifies the ID of the new database. The database ID must conform to the regular expression [a-z][a-z0-9_\-]*[a-z0-9] and be between 2 and 30 characters in length. If the database ID is a reserved word or if it contains a hyphen, the database ID must be enclosed in backticks (`).

extraStatements[]

string

Optional. A list of DDL statements to run inside the newly created database. Statements can create tables, indexes, etc. These statements execute atomically with the creation of the database: if there is an error in any statement, the database is not created.

encryptionConfig

object (EncryptionConfig)

Optional. The encryption configuration for the database. If this field is not specified, Cloud Spanner will encrypt/decrypt all data at rest using Google default encryption.

databaseDialect

enum (DatabaseDialect)

Optional. The dialect of the Cloud Spanner Database.

protoDescriptors

string (bytes format)

Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements in 'extraStatements'. Contains a protobuf-serialized google.protobuf.FileDescriptorSet descriptor set. To generate it, install and run protoc with --include_imports and --descriptor_set_out. For example, to generate for moon/shot/app.proto, run

$protoc  --proto_path=/app_path --proto_path=/lib_path \
         --include_imports \
         --descriptor_set_out=descriptors.data \
         moon/shot/app.proto

For more details, see protobuffer self description.

A base64-encoded string.

Response body

If successful, the response body contains a newly created instance of Operation.

Authorization scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/spanner.admin
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Authentication Overview.