Skip to content

Commit d683a14

Browse files
docs: update all public documents to use auto-generated admin clients. (#1109)
* docs: update all public documents to use auto-generated admin clients. * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * fix lint issue * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * lint fixes * add missing samples --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent c25376c commit d683a14

15 files changed

+1419
-1288
lines changed

samples/samples/admin/backup_snippet.py renamed to samples/samples/archived/backup_snippet.py

+218-339
Large diffs are not rendered by default.

samples/samples/admin/pg_samples.py renamed to samples/samples/archived/pg_samples.py

+129-169
Original file line numberDiff line numberDiff line change
@@ -18,122 +18,22 @@
1818
Spanner PostgreSql dialect.
1919
For more information, see the README.rst under /spanner.
2020
"""
21-
from google.cloud import spanner
21+
from google.cloud import spanner, spanner_admin_database_v1
2222
from google.cloud.spanner_admin_database_v1.types.common import DatabaseDialect
2323

2424
OPERATION_TIMEOUT_SECONDS = 240
2525

2626

27-
# [START spanner_postgresql_create_database]
28-
def create_database(instance_id, database_id):
29-
"""Creates a PostgreSql database and tables for sample data."""
30-
31-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
32-
33-
spanner_client = spanner.Client()
34-
instance = spanner_client.instance(instance_id)
35-
36-
request = spanner_database_admin.CreateDatabaseRequest(
37-
parent=instance.name,
38-
create_statement=f'CREATE DATABASE "{database_id}"',
39-
database_dialect=DatabaseDialect.POSTGRESQL,
40-
)
41-
42-
operation = spanner_client.database_admin_api.create_database(request=request)
43-
44-
print("Waiting for operation to complete...")
45-
database = operation.result(OPERATION_TIMEOUT_SECONDS)
46-
47-
create_table_using_ddl(database.name)
48-
print("Created database {} on instance {}".format(database_id, instance_id))
49-
50-
51-
def create_table_using_ddl(database_name):
52-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
53-
54-
spanner_client = spanner.Client()
55-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
56-
database=database_name,
57-
statements=[
58-
"""CREATE TABLE Singers (
59-
SingerId bigint NOT NULL,
60-
FirstName character varying(1024),
61-
LastName character varying(1024),
62-
SingerInfo bytea,
63-
FullName character varying(2048)
64-
GENERATED ALWAYS AS (FirstName || ' ' || LastName) STORED,
65-
PRIMARY KEY (SingerId)
66-
)""",
67-
"""CREATE TABLE Albums (
68-
SingerId bigint NOT NULL,
69-
AlbumId bigint NOT NULL,
70-
AlbumTitle character varying(1024),
71-
PRIMARY KEY (SingerId, AlbumId)
72-
) INTERLEAVE IN PARENT Singers ON DELETE CASCADE""",
73-
],
74-
)
75-
operation = spanner_client.database_admin_api.update_database_ddl(request)
76-
operation.result(OPERATION_TIMEOUT_SECONDS)
77-
78-
79-
# [END spanner_postgresql_create_database]
80-
81-
82-
def create_table_with_datatypes(instance_id, database_id):
83-
"""Creates a table with supported datatypes."""
84-
# [START spanner_postgresql_create_table_with_datatypes]
85-
# instance_id = "your-spanner-instance"
86-
# database_id = "your-spanner-db-id"
87-
88-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
89-
90-
spanner_client = spanner.Client()
91-
instance = spanner_client.instance(instance_id)
92-
database = instance.database(database_id)
93-
94-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
95-
database=database.name,
96-
statements=[
97-
"""CREATE TABLE Venues (
98-
VenueId BIGINT NOT NULL,
99-
VenueName character varying(100),
100-
VenueInfo BYTEA,
101-
Capacity BIGINT,
102-
OutdoorVenue BOOL,
103-
PopularityScore FLOAT8,
104-
Revenue NUMERIC,
105-
LastUpdateTime SPANNER.COMMIT_TIMESTAMP NOT NULL,
106-
PRIMARY KEY (VenueId))"""
107-
],
108-
)
109-
operation = spanner_client.database_admin_api.update_database_ddl(request)
110-
111-
print("Waiting for operation to complete...")
112-
operation.result(OPERATION_TIMEOUT_SECONDS)
113-
114-
print(
115-
"Created Venues table on database {} on instance {}".format(
116-
database_id, instance_id
117-
)
118-
)
119-
# [END spanner_postgresql_create_table_with_datatypes]
120-
121-
12227
# [START spanner_postgresql_add_column]
12328
def add_column(instance_id, database_id):
12429
"""Adds a new column to the Albums table in the example database."""
125-
126-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
127-
12830
spanner_client = spanner.Client()
12931
instance = spanner_client.instance(instance_id)
13032
database = instance.database(database_id)
13133

132-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
133-
database=database.name,
134-
statements=["ALTER TABLE Albums ADD COLUMN MarketingBudget BIGINT"],
34+
operation = database.update_ddl(
35+
["ALTER TABLE Albums ADD COLUMN MarketingBudget BIGINT"]
13536
)
136-
operation = spanner_client.database_admin_api.update_database_ddl(request)
13737

13838
print("Waiting for operation to complete...")
13939
operation.result(OPERATION_TIMEOUT_SECONDS)
@@ -164,19 +64,14 @@ def add_jsonb_column(instance_id, database_id):
16464
# instance_id = "your-spanner-instance"
16565
# database_id = "your-spanner-db-id"
16666

167-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
168-
16967
spanner_client = spanner.Client()
17068
instance = spanner_client.instance(instance_id)
17169
database = instance.database(database_id)
17270

173-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
174-
database=database.name,
175-
statements=["ALTER TABLE Venues ADD COLUMN VenueDetails JSONB"],
71+
operation = database.update_ddl(
72+
["ALTER TABLE Venues ADD COLUMN VenueDetails JSONB"]
17673
)
17774

178-
operation = spanner_client.database_admin_api.update_database_ddl(request)
179-
18075
print("Waiting for operation to complete...")
18176
operation.result(OPERATION_TIMEOUT_SECONDS)
18277

@@ -190,46 +85,103 @@ def add_jsonb_column(instance_id, database_id):
19085
# [END spanner_postgresql_jsonb_add_column]
19186

19287

193-
# [START spanner_postgresql_create_storing_index]
194-
def add_storing_index(instance_id, database_id):
195-
"""Adds an storing index to the example database."""
88+
# [START spanner_postgresql_alter_sequence]
89+
def alter_sequence(instance_id, database_id):
90+
"""Alters the Sequence and insert data"""
91+
spanner_client = spanner.Client()
92+
instance = spanner_client.instance(instance_id)
93+
database = instance.database(database_id)
94+
95+
operation = database.update_ddl(["ALTER SEQUENCE Seq SKIP RANGE 1000 5000000"])
96+
97+
print("Waiting for operation to complete...")
98+
operation.result(OPERATION_TIMEOUT_SECONDS)
99+
100+
print(
101+
"Altered Seq sequence to skip an inclusive range between 1000 and 5000000 on database {} on instance {}".format(
102+
database_id, instance_id
103+
)
104+
)
105+
106+
def insert_customers(transaction):
107+
results = transaction.execute_sql(
108+
"INSERT INTO Customers (CustomerName) VALUES "
109+
"('Lea'), "
110+
"('Cataline'), "
111+
"('Smith') "
112+
"RETURNING CustomerId"
113+
)
114+
for result in results:
115+
print("Inserted customer record with Customer Id: {}".format(*result))
116+
print(
117+
"Number of customer records inserted is {}".format(
118+
results.stats.row_count_exact
119+
)
120+
)
121+
122+
database.run_in_transaction(insert_customers)
123+
124+
125+
# [END spanner_postgresql_alter_sequence]
196126

197-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
198127

128+
# [START spanner_postgresql_create_database]
129+
def create_database(instance_id, database_id):
130+
"""Creates a PostgreSql database and tables for sample data."""
199131
spanner_client = spanner.Client()
200132
instance = spanner_client.instance(instance_id)
201-
database = instance.database(database_id)
202133

203-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
204-
database=database.name,
205-
statements=[
206-
"CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle)"
207-
"INCLUDE (MarketingBudget)"
208-
],
134+
database = instance.database(
135+
database_id,
136+
database_dialect=DatabaseDialect.POSTGRESQL,
209137
)
210138

211-
operation = spanner_client.database_admin_api.update_database_ddl(request)
139+
operation = database.create()
212140

213141
print("Waiting for operation to complete...")
214142
operation.result(OPERATION_TIMEOUT_SECONDS)
215143

216-
print("Added the AlbumsByAlbumTitle2 index.")
144+
create_table_using_ddl(database.name)
145+
print("Created database {} on instance {}".format(database_id, instance_id))
217146

218147

219-
# [END spanner_postgresql_create_storing_index]
148+
def create_table_using_ddl(database_name):
149+
spanner_client = spanner.Client()
150+
request = spanner_admin_database_v1.UpdateDatabaseDdlRequest(
151+
database=database_name,
152+
statements=[
153+
"""CREATE TABLE Singers (
154+
SingerId bigint NOT NULL,
155+
FirstName character varying(1024),
156+
LastName character varying(1024),
157+
SingerInfo bytea,
158+
FullName character varying(2048)
159+
GENERATED ALWAYS AS (FirstName || ' ' || LastName) STORED,
160+
PRIMARY KEY (SingerId)
161+
)""",
162+
"""CREATE TABLE Albums (
163+
SingerId bigint NOT NULL,
164+
AlbumId bigint NOT NULL,
165+
AlbumTitle character varying(1024),
166+
PRIMARY KEY (SingerId, AlbumId)
167+
) INTERLEAVE IN PARENT Singers ON DELETE CASCADE""",
168+
],
169+
)
170+
operation = spanner_client.database_admin_api.update_database_ddl(request)
171+
operation.result(OPERATION_TIMEOUT_SECONDS)
172+
173+
174+
# [END spanner_postgresql_create_database]
220175

221176

222177
# [START spanner_postgresql_create_sequence]
223178
def create_sequence(instance_id, database_id):
224179
"""Creates the Sequence and insert data"""
225-
226-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
227-
228180
spanner_client = spanner.Client()
229181
instance = spanner_client.instance(instance_id)
230182
database = instance.database(database_id)
231183

232-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
184+
request = spanner_admin_database_v1.UpdateDatabaseDdlRequest(
233185
database=database.name,
234186
statements=[
235187
"CREATE SEQUENCE Seq BIT_REVERSED_POSITIVE",
@@ -272,68 +224,78 @@ def insert_customers(transaction):
272224
# [END spanner_postgresql_create_sequence]
273225

274226

275-
# [START spanner_postgresql_alter_sequence]
276-
def alter_sequence(instance_id, database_id):
277-
"""Alters the Sequence and insert data"""
227+
# [START spanner_postgresql_create_storing_index]
228+
def add_storing_index(instance_id, database_id):
229+
"""Adds an storing index to the example database."""
230+
spanner_client = spanner.Client()
231+
instance = spanner_client.instance(instance_id)
232+
database = instance.database(database_id)
233+
234+
operation = database.update_ddl(
235+
[
236+
"CREATE INDEX AlbumsByAlbumTitle2 ON Albums(AlbumTitle)"
237+
"INCLUDE (MarketingBudget)"
238+
]
239+
)
278240

279-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
241+
print("Waiting for operation to complete...")
242+
operation.result(OPERATION_TIMEOUT_SECONDS)
280243

244+
print("Added the AlbumsByAlbumTitle2 index.")
245+
246+
247+
# [END spanner_postgresql_create_storing_index]
248+
249+
250+
# [START spanner_postgresql_drop_sequence]
251+
def drop_sequence(instance_id, database_id):
252+
"""Drops the Sequence"""
281253
spanner_client = spanner.Client()
282254
instance = spanner_client.instance(instance_id)
283255
database = instance.database(database_id)
284256

285-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
286-
database=database.name,
287-
statements=["ALTER SEQUENCE Seq SKIP RANGE 1000 5000000"],
257+
operation = database.update_ddl(
258+
[
259+
"ALTER TABLE Customers ALTER COLUMN CustomerId DROP DEFAULT",
260+
"DROP SEQUENCE Seq",
261+
]
288262
)
289-
operation = spanner_client.database_admin_api.update_database_ddl(request)
290263

291264
print("Waiting for operation to complete...")
292265
operation.result(OPERATION_TIMEOUT_SECONDS)
293266

294267
print(
295-
"Altered Seq sequence to skip an inclusive range between 1000 and 5000000 on database {} on instance {}".format(
268+
"Altered Customers table to drop DEFAULT from CustomerId column and dropped the Seq sequence on database {} on instance {}".format(
296269
database_id, instance_id
297270
)
298271
)
299272

300-
def insert_customers(transaction):
301-
results = transaction.execute_sql(
302-
"INSERT INTO Customers (CustomerName) VALUES "
303-
"('Lea'), "
304-
"('Cataline'), "
305-
"('Smith') "
306-
"RETURNING CustomerId"
307-
)
308-
for result in results:
309-
print("Inserted customer record with Customer Id: {}".format(*result))
310-
print(
311-
"Number of customer records inserted is {}".format(
312-
results.stats.row_count_exact
313-
)
314-
)
315-
316-
database.run_in_transaction(insert_customers)
317273

274+
# [END spanner_postgresql_drop_sequence]
318275

319-
# [END spanner_postgresql_alter_sequence]
320-
321-
322-
# [START spanner_postgresql_drop_sequence]
323-
def drop_sequence(instance_id, database_id):
324-
"""Drops the Sequence"""
325-
326-
from google.cloud.spanner_admin_database_v1.types import spanner_database_admin
327276

277+
def create_table_with_datatypes(instance_id, database_id):
278+
"""Creates a table with supported datatypes."""
279+
# [START spanner_postgresql_create_table_with_datatypes]
280+
# instance_id = "your-spanner-instance"
281+
# database_id = "your-spanner-db-id"
328282
spanner_client = spanner.Client()
329283
instance = spanner_client.instance(instance_id)
330284
database = instance.database(database_id)
331285

332-
request = spanner_database_admin.UpdateDatabaseDdlRequest(
286+
request = spanner_admin_database_v1.UpdateDatabaseDdlRequest(
333287
database=database.name,
334288
statements=[
335-
"ALTER TABLE Customers ALTER COLUMN CustomerId DROP DEFAULT",
336-
"DROP SEQUENCE Seq",
289+
"""CREATE TABLE Venues (
290+
VenueId BIGINT NOT NULL,
291+
VenueName character varying(100),
292+
VenueInfo BYTEA,
293+
Capacity BIGINT,
294+
OutdoorVenue BOOL,
295+
PopularityScore FLOAT8,
296+
Revenue NUMERIC,
297+
LastUpdateTime SPANNER.COMMIT_TIMESTAMP NOT NULL,
298+
PRIMARY KEY (VenueId))"""
337299
],
338300
)
339301
operation = spanner_client.database_admin_api.update_database_ddl(request)
@@ -342,10 +304,8 @@ def drop_sequence(instance_id, database_id):
342304
operation.result(OPERATION_TIMEOUT_SECONDS)
343305

344306
print(
345-
"Altered Customers table to drop DEFAULT from CustomerId column and dropped the Seq sequence on database {} on instance {}".format(
307+
"Created Venues table on database {} on instance {}".format(
346308
database_id, instance_id
347309
)
348310
)
349-
350-
351-
# [END spanner_postgresql_drop_sequence]
311+
# [END spanner_postgresql_create_table_with_datatypes]

0 commit comments

Comments
 (0)