Constructor
new Instance(spanner, name)
Parameters:
Name | Type | Description |
---|---|---|
spanner |
Spanner |
Spanner instance. |
name |
string |
Name of the instance. |
Members
id
Methods
backup(backupId) → {Backup}
Get a reference to a Backup object.
Parameters:
Name | Type | Description |
---|---|---|
backupId |
string |
The name of the backup. |
Returns:
Type | Description |
---|---|
Backup |
A Backup object. |
Throws:
-
If any parameter is not provided.
- Type
- Error
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const backup = instance.backup('my-backup');
create(config, callbackopt) → {Promise.<CreateInstanceResponse>}
Create an instance.
Wrapper around v1.InstanceAdminClient#createInstance.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
config |
CreateInstanceRequest |
Configuration object. |
|
callback |
CreateInstanceCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<CreateInstanceResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.create(function(err, instance, operation, apiResponse) {
if (err) {
// Error handling omitted.
}
operation
.on('error', function(err) {})
.on('complete', function() {
// Instance created successfully.
});
});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.create()
.then(function(data) {
const operation = data[0];
const apiResponse = data[1];
return operation.promise();
})
.then(function() {
// Instance created successfully.
});
createDatabase(name, optionsopt, callbackopt) → {Promise.<CreateDatabaseResponse>}
Create a database in this instance.
Wrapper around v1.DatabaseAdminClient#createDatabase.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
name |
name |
The name of the database to create. |
|
options |
CreateDatabaseRequest |
<optional> |
Configuration object. |
callback |
CreateDatabaseCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<CreateDatabaseResponse> |
Throws:
-
If a name is not provided.
- Type
- Error
Examples
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
function callback(err, database, operation, apiResponse) {
if (err) {
// Error handling omitted.
}
operation
.on('error', function(err) {})
.on('complete', function() {
// Database created successfully.
});
}
instance.createDatabase('new-database-name', callback);
//-
// Set the schema for the database.
//-
instance.createDatabase('new-database-name', {
schema:
'CREATE TABLE Singers (' +
' SingerId STRING(1024) NOT NULL,' +
' Name STRING(1024),' +
') PRIMARY KEY(SingerId)'
}, callback);
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.createDatabase('new-database-name')
.then(function(data) {
const database = data[0];
const operation = data[1];
return operation.promise();
})
.then(function() {
// Database created successfully.
});
Full example:
// Imports the Google Cloud client library
const {Spanner} = require('@google-cloud/spanner');
/**
* TODO(developer): Uncomment the following lines before running the sample.
*/
// const projectId = 'my-project-id';
// const instanceId = 'my-instance';
// const databaseId = 'my-database';
// Creates a client
const spanner = new Spanner({
projectId: projectId,
});
// Gets a reference to a Cloud Spanner instance
const instance = spanner.instance(instanceId);
// Note: Cloud Spanner interprets Node.js numbers as FLOAT64s, so they
// must be converted to strings before being inserted as INT64s
const request = {
schema: [
`CREATE TABLE Singers (
SingerId INT64 NOT NULL,
FirstName STRING(1024),
LastName STRING(1024),
SingerInfo BYTES(MAX)
) PRIMARY KEY (SingerId)`,
`CREATE TABLE Albums (
SingerId INT64 NOT NULL,
AlbumId INT64 NOT NULL,
AlbumTitle STRING(MAX)
) PRIMARY KEY (SingerId, AlbumId),
INTERLEAVE IN PARENT Singers ON DELETE CASCADE`,
],
};
// Creates a database
const [database, operation] = await instance.createDatabase(
databaseId,
request
);
console.log(`Waiting for operation on ${database.id} to complete...`);
await operation.promise();
console.log(`Created database ${databaseId} on instance ${instanceId}.`);
database(name, poolOptionsopt, queryOptionsopt) → {Database}
Get a reference to a Database object.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
name |
string |
The name of the instance. |
|
poolOptions |
SessionPoolOptions | SessionPoolCtor |
<optional> |
Session pool configuration options. |
queryOptions |
spannerClient.spanner.v1.ExecuteSqlRequest.IQueryOptions |
<optional> |
Default query options to use with the database. These options will be overridden by any query options set in environment variables or that are specified on a per-query basis. |
Returns:
Type | Description |
---|---|
Database |
A Database object. |
Throws:
-
If a name is not provided.
- Type
- Error
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const database = instance.database('my-database');
delete(gaxOptionsopt, callbackopt) → {Promise.<DeleteInstanceResponse>}
Delete the instance.
Wrapper around v1.InstanceAdminClient#deleteInstance.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
gaxOptions |
object |
<optional> |
Request configuration options, See CallOptions for more details. |
callback |
DeleteInstanceCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<DeleteInstanceResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.delete(function(err, apiResponse) {
if (err) {
// Error handling omitted.
}
// Instance was deleted successfully.
});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.delete().then(function(data) {
const apiResponse = data[0];
});
exists(gaxOptionsopt, callbackopt) → {Promise.<InstanceExistsResponse>}
Check if an instance exists.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
gaxOptions |
object |
<optional> |
Request configuration options, See CallOptions for more details. |
callback |
InstanceExistsCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<InstanceExistsResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.exists(function(err, exists) {});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.exists().then(function(data) {
const exists = data[0];
});
get(optionsopt, callbackopt) → {Promise.<GetInstanceResponse>}
Get an instance if it exists.
You may optionally use this to "get or create" an object by providing an
object with autoCreate
set to true
. Any extra configuration that is
normally required for the create
method must be contained within this
object as well.
Parameters:
Name | Type | Attributes | Description | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
options |
<optional> |
Configuration object. Properties
|
|||||||||||||||
callback |
GetInstanceCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<GetInstanceResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.get(function(err, instance, apiResponse) {
// `instance.metadata` has been populated.
});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.get().then(function(data) {
const instance = data[0];
const apiResponse = data[0];
});
getBackupOperations(optionsopt) → {Promise.<GetBackupOperationsResponse>}
List pending and completed backup operations for all databases in the instance.
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
GetBackupOperationsOptions |
<optional> |
The query object for listing backup operations. Properties
|
Returns:
Type | Description |
---|---|
Promise.<GetBackupOperationsResponse> |
When resolved, contains a paged list of backup operations. |
- See:
-
- #listOperations
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const [operations] = await instance.getBackupOperations();
//-
// To manually handle pagination, set autoPaginate:false in gaxOptions.
//-
let pageToken = undefined;
do {
const [operations, , response] = await instance.getBackupOperations({
pageSize: 3,
pageToken,
gaxOptions: {autoPaginate: false},
});
operations.forEach(operation => {
// Do something with operation
});
pageToken = response.nextPageToken;
} while (pageToken);
getBackups(optionsopt) → {Promise.<GetBackupsResponse>}
List backups on the instance.
Both completed and in-progress backups are listed if no filter is supplied.
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
GetBackupsOptions |
<optional> |
The query object for listing backups. Properties
|
Returns:
Type | Description |
---|---|
Promise.<GetBackupsResponse> |
When resolved, contains a paged list of backups. |
- See:
-
- #backup
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const [backups] = await instance.getBackups();
//-
// To manually handle pagination, set autoPaginate:false in gaxOptions.
//-
let pageToken = undefined;
do {
const [backups, , response] = await instance.getBackups({
pageSize: 3,
pageToken,
gaxOptions: {autoPaginate: false},
});
backups.forEach(backup => {
// Do something with backup
});
pageToken = response.nextPageToken;
} while (pageToken);
getDatabaseOperations(optionsopt) → {Promise.<GetDatabaseOperationsResponse>}
List pending and completed operations for all databases in the instance.
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
GetDatabaseOperationsOptions |
<optional> |
The query object for listing database operations. Properties
|
Returns:
Type | Description |
---|---|
Promise.<GetDatabaseOperationsResponse> |
When resolved, contains a paged list of database operations. |
- See:
-
- Database.getDatabaseOperations
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const [operations] = await instance.getDatabaseOperations();
// ... then do something with the operations
//-
// To manually handle pagination, set autoPaginate:false in gaxOptions.
//-
let pageToken = undefined;
do {
const [operations, , response] = await instance.getDatabaseOperations({
pageSize: 3,
pageToken,
gaxOptions: {autoPaginate: false},
});
operations.forEach(operation => {
// Do something with operation
});
pageToken = response.nextPageToken;
} while (pageToken);
getDatabases(optionsopt, callbackopt) → {Promise.<GetDatabasesResponse>}
Get a list of databases.
Wrapper around v1.DatabaseAdminClient#listDatabases.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
GetDatabasesOptions |
<optional> |
Query object for listing databases. |
callback |
GetDatabasesCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<GetDatabasesResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.getDatabases(function(err, databases) {
// `databases` is an array of `Database` objects.
});
//-
// To control how many API requests are made and page through the results
// manually, set `autoPaginate` to `false`.
//-
function callback(err, databases, nextQuery, apiResponse) {
if (nextQuery) {
// More results exist.
instance.getDatabases(nextQuery, callback);
}
}
instance.getDatabases({
gaxOptions: {autoPaginate: false}
}, callback);
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.getDatabases().then(function(data) {
const databases = data[0];
});
getMetadata(optionsopt, callbackopt) → {Promise.<GetInstanceMetadataResponse>}
Get the instance's metadata.
Wrapper around v1.InstanceAdminClient#getInstance.
Parameters:
Name | Type | Attributes | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
options |
GetInstanceMetadataOptions |
<optional> |
Configuration object Properties
|
||||||||
callback |
GetInstanceMetadataCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<GetInstanceMetadataResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
instance.getMetadata(function(err, metadata, apiResponse) {});
//-
// Request only `displayName`.
//-
instance.getMetadata({fieldNames: 'displayName'}, (err, metadata, apiResponse) => {
// metadata will only contain value for `displayName`
const displayName = metadata['displayName'];
})
//-
// Request multiple specific field names.
//-
instance.getMetadata({fieldNames: ['displayName', 'nodeCount']}, (err, metadata, apiResponse) => {
// metadata will only contain value for `displayName` and 'nodeCount'
const displayName = metadata['displayName'];
const nodeCount = metadata['nodeCount'];
});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.getMetadata().then(function(data) {
const metadata = data[0];
const apiResponse = data[1];
});
setMetadata(metadata, gaxOptionsopt, callbackopt) → {Promise.<LongRunningOperationResponse>}
Update the metadata for this instance. Note that this method follows PATCH semantics, so previously-configured settings will persist.
Wrapper around v1.InstanceAdminClient#updateInstance.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
metadata |
object |
The metadata you wish to set. |
|
gaxOptions |
object |
<optional> |
Request configuration options, See CallOptions for more details. |
callback |
SetInstanceMetadataCallback |
<optional> |
Callback function. |
Returns:
Type | Description |
---|---|
Promise.<LongRunningOperationResponse> |
Example
const {Spanner} = require('@google-cloud/spanner');
const spanner = new Spanner();
const instance = spanner.instance('my-instance');
const metadata = {
displayName: 'My Instance'
};
instance.setMetadata(metadata, function(err, operation, apiResponse) {
if (err) {
// Error handling omitted.
}
operation
.on('error', function(err) {})
.on('complete', function() {
// Metadata updated successfully.
});
});
//-
// If the callback is omitted, we'll return a Promise.
//-
instance.setMetadata(metadata).then(function(data) {
const operation = data[0];
const apiResponse = data[1];
});