Class: PgEasyReplicate::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/pg_easy_replicate/cli.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


159
160
161
# File 'lib/pg_easy_replicate/cli.rb', line 159

def self.exit_on_failure?
  true
end

Instance Method Details

#bootstrapObject



53
54
55
# File 'lib/pg_easy_replicate/cli.rb', line 53

def bootstrap
  PgEasyReplicate.bootstrap(options)
end

#cleanupObject



70
71
72
# File 'lib/pg_easy_replicate/cli.rb', line 70

def cleanup
  PgEasyReplicate.cleanup(options)
end

#config_checkObject



28
29
30
31
32
33
34
35
36
37
# File 'lib/pg_easy_replicate/cli.rb', line 28

def config_check
  PgEasyReplicate.assert_config(
    special_user_role: options[:special_user_role],
    copy_schema: options[:copy_schema],
    tables: options[:tables],
    schema_name: options[:schema_name],
  )

  puts "✅ Config is looking good."
end

#start_syncObject



100
101
102
# File 'lib/pg_easy_replicate/cli.rb', line 100

def start_sync
  PgEasyReplicate::Orchestrate.start_sync(options)
end

#statsObject



146
147
148
149
150
151
152
# File 'lib/pg_easy_replicate/cli.rb', line 146

def stats
  if options[:watch]
    PgEasyReplicate::Stats.follow(options[:group_name])
  else
    PgEasyReplicate::Stats.print(options[:group_name])
  end
end

#stop_syncObject



110
111
112
# File 'lib/pg_easy_replicate/cli.rb', line 110

def stop_sync
  PgEasyReplicate::Orchestrate.stop_sync(group_name: options[:group_name])
end

#switchoverObject

method_option :bi_directional,

aliases: "-b",
desc:
  "Setup replication from target database to source database"


132
133
134
135
136
137
138
# File 'lib/pg_easy_replicate/cli.rb', line 132

def switchover
  PgEasyReplicate::Orchestrate.switchover(
    group_name: options[:group_name],
    lag_delta_size: options[:lag_delta_size],
    skip_vacuum_analyze: options[:skip_vacuum_analyze]
  )
end

#versionObject



155
156
157
# File 'lib/pg_easy_replicate/cli.rb', line 155

def version
  puts PgEasyReplicate::VERSION
end