38
38
OPERATION_TIMEOUT_SECONDS = 240
39
39
40
40
41
- # [START spanner_create_instance]
42
- def create_instance (instance_id ):
43
- """Creates an instance."""
44
- from google .cloud .spanner_admin_instance_v1 .types import \
45
- spanner_instance_admin
46
-
47
- spanner_client = spanner .Client ()
48
-
49
- config_name = "{}/instanceConfigs/regional-us-central1" .format (
50
- spanner_client .project_name
51
- )
52
-
53
- operation = spanner_client .instance_admin_api .create_instance (
54
- parent = spanner_client .project_name ,
55
- instance_id = instance_id ,
56
- instance = spanner_instance_admin .Instance (
57
- config = config_name ,
58
- display_name = "This is a display name." ,
59
- node_count = 1 ,
60
- labels = {
61
- "cloud_spanner_samples" : "true" ,
62
- "sample_name" : "snippets-create_instance-explicit" ,
63
- "created" : str (int (time .time ())),
64
- },
65
- ),
66
- )
67
-
68
- print ("Waiting for operation to complete..." )
69
- operation .result (OPERATION_TIMEOUT_SECONDS )
70
-
71
- print ("Created instance {}" .format (instance_id ))
72
-
73
-
74
- # [END spanner_create_instance]
75
-
76
-
77
41
# [START spanner_create_database_with_property_graph]
78
42
def create_database_with_property_graph (instance_id , database_id ):
79
43
"""Creates a database, tables and a property graph for sample data."""
@@ -113,8 +77,7 @@ def create_database_with_property_graph(instance_id, database_id):
113
77
id INT64 NOT NULL,
114
78
to_id INT64 NOT NULL,
115
79
amount FLOAT64,
116
- create_time TIMESTAMP NOT NULL OPTIONS
117
- (allow_commit_timestamp=true),
80
+ create_time TIMESTAMP NOT NULL,
118
81
order_number STRING(MAX),
119
82
FOREIGN KEY (to_id) REFERENCES Account (id)
120
83
) PRIMARY KEY (id, to_id, create_time),
@@ -149,6 +112,37 @@ def create_database_with_property_graph(instance_id, database_id):
149
112
# [END spanner_create_database_with_property_graph]
150
113
151
114
115
+ # [START spanner_update_allow_commit_timestamps]
116
+ def update_allow_commit_timestamps (instance_id , database_id ):
117
+ """Alters table column(s) to support commit timestamps."""
118
+
119
+ from google .cloud .spanner_admin_database_v1 .types import \
120
+ spanner_database_admin
121
+
122
+ spanner_client = spanner .Client ()
123
+ database_admin_api = spanner_client .database_admin_api
124
+
125
+ request = spanner_database_admin .UpdateDatabaseDdlRequest (
126
+ database = database_admin_api .database_path (
127
+ spanner_client .project , instance_id , database_id
128
+ ),
129
+ statements = [
130
+ """ALTER TABLE AccountTransferAccount
131
+ ALTER COLUMN create_time
132
+ SET OPTIONS (allow_commit_timestamp = true)""" ],
133
+ )
134
+
135
+ operation = database_admin_api .update_database_ddl (request )
136
+
137
+ print ("Waiting for operation to complete..." )
138
+ operation .result (OPERATION_TIMEOUT_SECONDS )
139
+
140
+ print ("Updated the AccountTransferAccountTable." )
141
+
142
+
143
+ # [END spanner_update_allow_commit_timestamps]
144
+
145
+
152
146
# [START spanner_insert_graph_data]
153
147
def insert_data (instance_id , database_id ):
154
148
"""Inserts sample data into the given database.
@@ -432,10 +426,11 @@ def delete_data(instance_id, database_id):
432
426
)
433
427
434
428
subparsers = parser .add_subparsers (dest = "command" )
435
- subparsers .add_parser ("create_instance" , help = create_instance .__doc__ )
436
429
subparsers .add_parser (
437
430
"create_database_with_property_graph" ,
438
431
help = create_database_with_property_graph .__doc__ )
432
+ subparsers .add_parser ("update_allow_commit_timestamps" ,
433
+ help = update_allow_commit_timestamps .__doc__ )
439
434
subparsers .add_parser ("insert_data" , help = insert_data .__doc__ )
440
435
subparsers .add_parser ("insert_data_with_dml" , help = insert_data_with_dml .__doc__ )
441
436
subparsers .add_parser ("update_data_with_dml" , help = update_data_with_dml .__doc__ )
@@ -452,6 +447,8 @@ def delete_data(instance_id, database_id):
452
447
453
448
if args .command == "create_database_with_property_graph" :
454
449
create_database_with_property_graph (args .instance_id , args .database_id )
450
+ elif args .command == "update_allow_commit_timestamps" :
451
+ update_allow_commit_timestamps (args .instance_id , args .database_id )
455
452
elif args .command == "insert_data" :
456
453
insert_data (args .instance_id , args .database_id )
457
454
elif args .command == "insert_data_with_dml" :
0 commit comments