Class: Google::Cloud::Spanner::Database
- Inherits:
-
Object
- Object
- Google::Cloud::Spanner::Database
- Defined in:
- lib/google/cloud/spanner/database.rb,
lib/google/cloud/spanner/database/job.rb,
lib/google/cloud/spanner/database/list.rb,
lib/google/cloud/spanner/database/job/list.rb,
lib/google/cloud/spanner/database/backup_info.rb,
lib/google/cloud/spanner/database/restore_info.rb
Overview
Database
Represents a Cloud Spanner database. To use Cloud Spanner's read and write operations, you must first create a database. A database belongs to a Instance and contains tables and indexes. You may create multiple databases in an Instance.
See Instance#databases, Instance#database, and Instance#create_database.
To read and/or modify data in a Cloud Spanner database, use an instance of Client. See Project#client.
Defined Under Namespace
Classes: BackupInfo, Job, List, RestoreInfo
Instance Method Summary collapse
-
#backups(page_size: nil) ⇒ Array<Google::Cloud::Spanner::Backup>
Retrieves backups belonging to the database.
-
#create_backup(backup_id, expire_time, version_time: nil) ⇒ Google::Cloud::Spanner::Backup::Job
Creates a database backup.
-
#creating? ⇒ Boolean
The database is still being created.
-
#database_id ⇒ String
The unique identifier for the database.
-
#database_operations(filter: nil, page_size: nil) ⇒ Array<Google::Cloud::Spanner::Database::Job>
Retrieves the list of database operations for the given database.
-
#ddl(force: nil) ⇒ Array<String>
Retrieve the Data Definition Language (DDL) statements that define database structures.
-
#drop ⇒ Boolean
Drops (deletes) the Cloud Spanner database.
-
#earliest_version_time ⇒ Time
The earliest available version time for a database.
-
#instance_id ⇒ String
The unique identifier for the instance.
-
#path ⇒ String
The full path for the database resource.
-
#policy {|policy| ... } ⇒ Policy
Gets the Cloud IAM access control policy for this database.
-
#project_id ⇒ String
The unique identifier for the project.
-
#ready? ⇒ Boolean
The database is fully created and ready for use.
-
#ready_optimizing? ⇒ Boolean
The database is fully created from backup and optimizing.
-
#restore_info ⇒ Google::Cloud::Spanner::Database::RestoreInfo?
Information about the source used to restore the database.
-
#state ⇒ Symbol
The current database state.
-
#test_permissions(*permissions) ⇒ Array<Strings>
Tests the specified permissions against the Cloud IAM access control policy.
-
#update(statements: [], operation_id: nil) ⇒ Database::Job
Updates the database schema by adding Data Definition Language (DDL) statements to create, update, and delete tables and indexes.
-
#update_policy(new_policy) ⇒ Policy
(also: #policy=)
Updates the Cloud IAM access control policy for this database.
-
#version_retention_period ⇒ String
The version retention period for a database.
Instance Method Details
#backups(page_size: nil) ⇒ Array<Google::Cloud::Spanner::Backup>
Retrieves backups belonging to the database.
486 487 488 489 490 491 492 493 |
# File 'lib/google/cloud/spanner/database.rb', line 486 def backups page_size: nil ensure_service! grpc = service.list_backups \ instance_id, filter: "database:#{database_id}", page_size: page_size Backup::List.from_grpc grpc, service end |
#create_backup(backup_id, expire_time, version_time: nil) ⇒ Google::Cloud::Spanner::Backup::Job
Creates a database backup.
446 447 448 449 450 451 452 453 454 455 |
# File 'lib/google/cloud/spanner/database.rb', line 446 def create_backup backup_id, expire_time, version_time: nil ensure_service! grpc = service.create_backup \ instance_id, database_id, backup_id, expire_time, version_time Backup::Job.from_grpc grpc, service end |
#creating? ⇒ Boolean
The database is still being created. Operations on the database may
raise with FAILED_PRECONDITION in this state.
120 121 122 |
# File 'lib/google/cloud/spanner/database.rb', line 120 def creating? state == :CREATING end |
#database_id ⇒ String
The unique identifier for the database.
84 85 86 |
# File 'lib/google/cloud/spanner/database.rb', line 84 def database_id @grpc.name.split("/")[5] end |
#database_operations(filter: nil, page_size: nil) ⇒ Array<Google::Cloud::Spanner::Database::Job>
Retrieves the list of database operations for the given database.
385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 |
# File 'lib/google/cloud/spanner/database.rb', line 385 def database_operations filter: nil, page_size: nil database_filter = format( DATBASE_OPERATION_METADAT_FILTER_TEMPLATE, database_id: database_id ) if filter database_filter = format( "(%<filter>s) AND (%<database_filter>s)", filter: filter, database_filter: database_filter ) end grpc = service.list_database_operations instance_id, filter: database_filter, page_size: page_size Database::Job::List.from_grpc grpc, service end |
#ddl(force: nil) ⇒ Array<String>
Retrieve the Data Definition Language (DDL) statements that define database structures. DDL statements are used to create, update, and delete tables and indexes.
171 172 173 174 175 176 |
# File 'lib/google/cloud/spanner/database.rb', line 171 def ddl force: nil return @ddl if @ddl && !force ensure_service! ddl_grpc = service.get_database_ddl instance_id, database_id @ddl = ddl_grpc.statements end |
#drop ⇒ Boolean
Drops (deletes) the Cloud Spanner database.
238 239 240 241 242 |
# File 'lib/google/cloud/spanner/database.rb', line 238 def drop ensure_service! service.drop_database instance_id, database_id true end |
#earliest_version_time ⇒ Time
The earliest available version time for a database.
96 97 98 |
# File 'lib/google/cloud/spanner/database.rb', line 96 def earliest_version_time Convert. @grpc.earliest_version_time end |
#instance_id ⇒ String
The unique identifier for the instance.
78 79 80 |
# File 'lib/google/cloud/spanner/database.rb', line 78 def instance_id @grpc.name.split("/")[3] end |
#path ⇒ String
The full path for the database resource. Values are of the form
projects/<project_id>/instances/<instance_id>/databases/<database_id>.
104 105 106 |
# File 'lib/google/cloud/spanner/database.rb', line 104 def path @grpc.name end |
#policy {|policy| ... } ⇒ Policy
Gets the Cloud IAM access control policy for this database.
537 538 539 540 541 542 543 544 |
# File 'lib/google/cloud/spanner/database.rb', line 537 def policy ensure_service! grpc = service.get_database_policy instance_id, database_id policy = Policy.from_grpc grpc return policy unless block_given? yield policy update_policy policy end |
#project_id ⇒ String
The unique identifier for the project.
72 73 74 |
# File 'lib/google/cloud/spanner/database.rb', line 72 def project_id @grpc.name.split("/")[1] end |
#ready? ⇒ Boolean
The database is fully created and ready for use.
127 128 129 |
# File 'lib/google/cloud/spanner/database.rb', line 127 def ready? state == :READY end |
#ready_optimizing? ⇒ Boolean
The database is fully created from backup and optimizing.
134 135 136 |
# File 'lib/google/cloud/spanner/database.rb', line 134 def ready_optimizing? state == :READY_OPTIMIZING end |
#restore_info ⇒ Google::Cloud::Spanner::Database::RestoreInfo?
Information about the source used to restore the database.
498 499 500 501 |
# File 'lib/google/cloud/spanner/database.rb', line 498 def restore_info return nil unless @grpc.restore_info RestoreInfo.from_grpc @grpc.restore_info end |
#state ⇒ Symbol
The current database state. Possible values are :CREATING and
:READY.
112 113 114 |
# File 'lib/google/cloud/spanner/database.rb', line 112 def state @grpc.state end |
#test_permissions(*permissions) ⇒ Array<Strings>
Tests the specified permissions against the Cloud IAM access control policy.
- spanner.databases.beginPartitionedDmlTransaction
- spanner.databases.create
- spanner.databases.createBackup
- spanner.databases.list
- spanner.databases.update
- spanner.databases.updateDdl
- spanner.databases.get
- spanner.databases.getDdl
- spanner.databases.getIamPolicy
- spanner.databases.setIamPolicy
- spanner.databases.beginReadOnlyTransaction
- spanner.databases.beginOrRollbackReadWriteTransaction
- spanner.databases.read
- spanner.databases.select
- spanner.databases.write
- spanner.databases.drop
625 626 627 628 629 630 631 632 |
# File 'lib/google/cloud/spanner/database.rb', line 625 def * = Array().flatten = Array().flatten ensure_service! grpc = service. \ instance_id, database_id, grpc. end |
#update(statements: [], operation_id: nil) ⇒ Database::Job
Updates the database schema by adding Data Definition Language (DDL) statements to create, update, and delete tables and indexes.
217 218 219 220 221 222 223 |
# File 'lib/google/cloud/spanner/database.rb', line 217 def update statements: [], operation_id: nil ensure_service! grpc = service.update_database_ddl instance_id, database_id, statements: statements, operation_id: operation_id Database::Job.from_grpc grpc, service end |
#update_policy(new_policy) ⇒ Policy Also known as: policy=
Updates the Cloud IAM access control
policy for this database. The policy should be read from #policy.
See Policy for an explanation of the policy
etag property and how to modify policies.
You can also update the policy by passing a block to #policy, which will call this method internally after the block completes.
575 576 577 578 579 580 |
# File 'lib/google/cloud/spanner/database.rb', line 575 def update_policy new_policy ensure_service! grpc = service.set_database_policy \ instance_id, database_id, new_policy.to_grpc Policy.from_grpc grpc end |
#version_retention_period ⇒ String
The version retention period for a database.
90 91 92 |
# File 'lib/google/cloud/spanner/database.rb', line 90 def version_retention_period @grpc.version_retention_period end |