|
24 | 24 |
|
25 | 25 | from google.cloud import spanner |
26 | 26 | from google.cloud.spanner_admin_instance_v1.types import spanner_instance_admin |
27 | | -from google.cloud.spanner_v1 import param_types |
28 | | -from google.type import expr_pb2 |
29 | | -from google.iam.v1 import policy_pb2 |
30 | | -from google.cloud.spanner_v1.data_types import JsonObject |
31 | | -from google.protobuf import field_mask_pb2 # type: ignore |
32 | 27 |
|
33 | 28 | OPERATION_TIMEOUT_SECONDS = 240 |
34 | 29 |
|
@@ -71,31 +66,35 @@ def create_database_with_default_leader(instance_id, database_id, default_leader |
71 | 66 | """Creates a database with tables with a default leader.""" |
72 | 67 | spanner_client = spanner.Client() |
73 | 68 | operation = spanner_client.database_admin_api.create_database( |
74 | | - parent="projects/{}/instances/{}".format(spanner_client.project, instance_id), |
75 | | - create_statement="CREATE DATABASE '{}'".format(database_id), |
76 | | - extra_statements=[ |
77 | | - """CREATE TABLE Singers ( |
78 | | - SingerId INT64 NOT NULL, |
79 | | - FirstName STRING(1024), |
80 | | - LastName STRING(1024), |
81 | | - SingerInfo BYTES(MAX) |
82 | | - ) PRIMARY KEY (SingerId)""", |
83 | | - """CREATE TABLE Albums ( |
84 | | - SingerId INT64 NOT NULL, |
85 | | - AlbumId INT64 NOT NULL, |
86 | | - AlbumTitle STRING(MAX) |
87 | | - ) PRIMARY KEY (SingerId, AlbumId), |
88 | | - INTERLEAVE IN PARENT Singers ON DELETE CASCADE""", |
89 | | - "ALTER DATABASE {}" |
90 | | - " SET OPTIONS (default_leader = '{}')".format(database_id, default_leader), |
91 | | - ], |
| 69 | + request={ |
| 70 | + "parent": "projects/{}/instances/{}".format( |
| 71 | + spanner_client.project, instance_id |
| 72 | + ), |
| 73 | + "create_statement": "CREATE DATABASE {}".format(database_id), |
| 74 | + "extra_statements": [ |
| 75 | + """CREATE TABLE Singers ( |
| 76 | + SingerId INT64 NOT NULL, |
| 77 | + FirstName STRING(1024), |
| 78 | + LastName STRING(1024), |
| 79 | + SingerInfo BYTES(MAX) |
| 80 | + ) PRIMARY KEY (SingerId)""", |
| 81 | + """CREATE TABLE Albums ( |
| 82 | + SingerId INT64 NOT NULL, |
| 83 | + AlbumId INT64 NOT NULL, |
| 84 | + AlbumTitle STRING(MAX) |
| 85 | + ) PRIMARY KEY (SingerId, AlbumId), |
| 86 | + INTERLEAVE IN PARENT Singers ON DELETE CASCADE""", |
| 87 | + "ALTER DATABASE {}" |
| 88 | + " SET OPTIONS (default_leader = '{}')".format( |
| 89 | + database_id, default_leader |
| 90 | + ), |
| 91 | + ], |
| 92 | + }, |
92 | 93 | ) |
93 | 94 |
|
94 | 95 | print("Waiting for operation to complete...") |
95 | 96 | database = operation.result(OPERATION_TIMEOUT_SECONDS) |
96 | 97 |
|
97 | | - database.reload() |
98 | | - |
99 | 98 | print( |
100 | 99 | "Database {} created with default leader {}".format( |
101 | 100 | database.name, database.default_leader |
|
0 commit comments