Skip to content

provider/aws: [question] DBName cannot be set when restoring from a MySQL, PostgreSQL, or MariaDB snapshot #473

@hashibot

Description

@hashibot

This issue was originally opened by @hgontijo as hashicorp/terraform#11278. It was migrated here as part of the provider split. The original body of the issue is below.


AWS RDS does not allow setting the DBName when restoring from a MySQL, PostgreSQL, or MariaDB snapshot, however it allows when restoring for Oracle and SQL Server -- vide cli documentation. A recent change on Terraform sets the DB Name on a restore operation for all databases. The current Terraform behavior is to show an AWS RDS exception (see below) whenever DB Name is set in a restore operation.
For this use case, is expected from Terraform to behave exact like AWS API or to execute a proactive validation before submission? Is expected Terraform to execute any validation during plan operation?

Actual Terraform Behavior

DB name is set on a restore from snapshot and Terraform issues this error:

* aws_db_instance.db_master: Error creating DB Instance: InvalidParameterValue: DBName must be null when Restoring for this Engine.
	status code: 400, request id: 48a17d5b-dc0c-11e6-8a5c-39e234c22f55

Actual AWS CLI Behavior

$ aws rds restore-db-instance-from-db-snapshot \
   --db-subnet-group-name default-vpc \
    --db-instance-identifier foo \
    --db-snapshot-identifier db-snapshot
    --db-name name
An error occurred (InvalidParameterValue) when calling the RestoreDBInstanceFromDBSnapshot operation: DBName name cannot be used.  It is a reserved word for this engine

Terraform Version

0.8.4

Affected Resource(s)

  • aws_db_instance

Steps to Reproduce

resource "aws_db_instance" "db_master" {
  ...
  name = "name"
  snapshot_identifier = "db-snapshot"
}
  1. terraform apply

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugAddresses a defect in current functionality.service/rdsIssues and PRs that pertain to the rds service.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions