diff --git a/model/lantern/lantern_resource.rb b/model/lantern/lantern_resource.rb index 751c12efb..21df0fe03 100644 --- a/model/lantern/lantern_resource.rb +++ b/model/lantern/lantern_resource.rb @@ -267,8 +267,6 @@ def mark_switchover_finish end def create_logical_replica(resource_name: nil, lantern_version: nil, extras_version: nil, minor_version: nil, pg_upgrade: nil) - # TODO:: - # 1. If new database will be created during logical replication it won't be added automatically ubid = LanternResource.generate_ubid create_ddl_log create_publication("pub_#{ubid}") diff --git a/prog/lantern/lantern_server_nexus.rb b/prog/lantern/lantern_server_nexus.rb index 302f352db..36d3e5440 100644 --- a/prog/lantern/lantern_server_nexus.rb +++ b/prog/lantern/lantern_server_nexus.rb @@ -229,6 +229,8 @@ def before_run if lantern_server.resource.logical_replication lantern_server.resource.drop_ddl_log_trigger + # remove publications + lantern_server.resource.delete_publication("pub_#{lantern_server.resource.ubid}") if !lantern_server.resource.parent.representative_server.domain.nil? # prepare for fast switchover diff --git a/spec/prog/lantern/lantern_server_nexus_spec.rb b/spec/prog/lantern/lantern_server_nexus_spec.rb index 5cac960ed..c4a0bf526 100644 --- a/spec/prog/lantern/lantern_server_nexus_spec.rb +++ b/spec/prog/lantern/lantern_server_nexus_spec.rb @@ -424,6 +424,8 @@ expect(lantern_server.resource).to receive(:logical_replication).and_return(true) expect(lantern_server.resource).to receive(:allow_timeline_access_to_bucket) expect(lantern_server.resource).to receive(:drop_ddl_log_trigger) + expect(lantern_server.resource).to receive(:ubid).and_return("test").at_least(:once) + expect(lantern_server.resource).to receive(:delete_publication).with("pub_test") expect(lantern_server).to receive(:run_query).and_return("f") expect(lantern_server).to receive(:timeline_id=) expect(lantern_server).to receive(:timeline_access=).with("push") @@ -445,6 +447,8 @@ expect(lantern_server.resource).to receive(:logical_replication).and_return(true) expect(lantern_server.resource).to receive(:allow_timeline_access_to_bucket) expect(lantern_server.resource).to receive(:drop_ddl_log_trigger) + expect(lantern_server.resource).to receive(:ubid).and_return("test").at_least(:once) + expect(lantern_server.resource).to receive(:delete_publication).with("pub_test") expect(lantern_server).to receive(:add_domain_to_stack).with(parent_reosurce.representative_server.domain, nx.strand) expect(nx).to receive(:incr_setup_ssl) expect(lantern_server).to receive(:run_query).and_return("f")