Restore a cluster from a Cloud SQL backup

This snippet shows how to create a new cluster by restoring it from a backup of a Cloud SQL for PostgreSQL instance. This is useful for migrating a database from Cloud SQL.

Code sample

C#

To authenticate to AlloyDB, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.

using Google.Cloud.AlloyDb.V1;
using Google.LongRunning;

public sealed partial class GeneratedAlloyDBCSQLAdminClientSnippets
{
    /// <summary>Snippet for RestoreFromCloudSQL</summary>
    /// <remarks>
    /// This snippet has been automatically generated and should be regarded as a code template only.
    /// It will require modifications to work:
    /// - It may require correct/in-range values for request initialization.
    /// - It may require specifying regional endpoints when creating the service client as shown in
    ///   https://cloud.google.com/dotnet/docs/reference/help/client-configuration#endpoint.
    /// </remarks>
    public void RestoreFromCloudSQL()
    {
        // Create client
        AlloyDBCSQLAdminClient alloyDBCSQLAdminClient = AlloyDBCSQLAdminClient.Create();
        // Initialize request argument(s)
        string parent = "projects/[PROJECT]/locations/[LOCATION]";
        string clusterId = "";
        // Make the request
        Operation<Cluster, OperationMetadata> response = alloyDBCSQLAdminClient.RestoreFromCloudSQL(parent, clusterId);

        // Poll until the returned long-running operation is complete
        Operation<Cluster, OperationMetadata> completedResponse = response.PollUntilCompleted();
        // Retrieve the operation result
        Cluster result = completedResponse.Result;

        // Or get the name of the operation
        string operationName = response.Name;
        // This name can be stored, then the long-running operation retrieved later by name
        Operation<Cluster, OperationMetadata> retrievedResponse = alloyDBCSQLAdminClient.PollOnceRestoreFromCloudSQL(operationName);
        // Check if the retrieved long-running operation has completed
        if (retrievedResponse.IsCompleted)
        {
            // If it has completed, then access the result
            Cluster retrievedResult = retrievedResponse.Result;
        }
    }
}

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.