Skip to content

Commit 871165e

Browse files
Make sql db instance recreate when going private -> public (#3882) (#2400)
Signed-off-by: Modular Magician <[email protected]>
1 parent 10060ae commit 871165e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

.changelog/3882.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
sql: fixed an issue where `google_sql_database_instance` would throw an error when removing `private_network`. Removing `private_network` now recreates the resource.
3+
```

google-beta/resource_sql_database_instance.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,8 @@ func resourceSqlDatabaseInstance() *schema.Resource {
9696
},
9797

9898
CustomizeDiff: customdiff.All(
99-
customdiff.ForceNewIfChange("settings.0.disk_size", isDiskShrinkage)),
99+
customdiff.ForceNewIfChange("settings.0.disk_size", isDiskShrinkage),
100+
privateNetworkCustomizeDiff),
100101

101102
Schema: map[string]*schema.Schema{
102103
"region": {
@@ -610,6 +611,18 @@ func isFirstGen(d *schema.ResourceData) bool {
610611
return !regexp.MustCompile("db*").Match([]byte(tier))
611612
}
612613

614+
// Makes private_network ForceNew if it is changing from set to nil. The API returns an error
615+
// if this change is attempted in-place.
616+
func privateNetworkCustomizeDiff(d *schema.ResourceDiff, meta interface{}) error {
617+
old, new := d.GetChange("settings.0.ip_configuration.0.private_network")
618+
619+
if old != "" && new == "" {
620+
d.ForceNew("settings.0.ip_configuration.0.private_network")
621+
}
622+
623+
return nil
624+
}
625+
613626
func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{}) error {
614627
config := meta.(*Config)
615628

0 commit comments

Comments
 (0)