active_postgres 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +23 -0
  3. data/README.md +158 -0
  4. data/exe/activepostgres +5 -0
  5. data/lib/active_postgres/cli.rb +157 -0
  6. data/lib/active_postgres/cluster_deployment_flow.rb +85 -0
  7. data/lib/active_postgres/component_resolver.rb +24 -0
  8. data/lib/active_postgres/components/base.rb +38 -0
  9. data/lib/active_postgres/components/core.rb +158 -0
  10. data/lib/active_postgres/components/extensions.rb +99 -0
  11. data/lib/active_postgres/components/monitoring.rb +55 -0
  12. data/lib/active_postgres/components/pgbackrest.rb +94 -0
  13. data/lib/active_postgres/components/pgbouncer.rb +137 -0
  14. data/lib/active_postgres/components/repmgr.rb +651 -0
  15. data/lib/active_postgres/components/ssl.rb +86 -0
  16. data/lib/active_postgres/configuration.rb +190 -0
  17. data/lib/active_postgres/connection_pooler.rb +429 -0
  18. data/lib/active_postgres/credentials.rb +17 -0
  19. data/lib/active_postgres/deployment_flow.rb +154 -0
  20. data/lib/active_postgres/error_handler.rb +185 -0
  21. data/lib/active_postgres/failover.rb +83 -0
  22. data/lib/active_postgres/generators/active_postgres/install_generator.rb +186 -0
  23. data/lib/active_postgres/health_checker.rb +244 -0
  24. data/lib/active_postgres/installer.rb +114 -0
  25. data/lib/active_postgres/log_sanitizer.rb +67 -0
  26. data/lib/active_postgres/logger.rb +125 -0
  27. data/lib/active_postgres/performance_tuner.rb +246 -0
  28. data/lib/active_postgres/rails/database_config.rb +174 -0
  29. data/lib/active_postgres/rails/migration_guard.rb +25 -0
  30. data/lib/active_postgres/railtie.rb +28 -0
  31. data/lib/active_postgres/retry_helper.rb +80 -0
  32. data/lib/active_postgres/rollback_manager.rb +140 -0
  33. data/lib/active_postgres/secrets.rb +86 -0
  34. data/lib/active_postgres/ssh_executor.rb +288 -0
  35. data/lib/active_postgres/standby_deployment_flow.rb +122 -0
  36. data/lib/active_postgres/validator.rb +143 -0
  37. data/lib/active_postgres/version.rb +3 -0
  38. data/lib/active_postgres.rb +67 -0
  39. data/lib/tasks/postgres.rake +855 -0
  40. data/lib/tasks/rolling_update.rake +258 -0
  41. data/lib/tasks/rotate_credentials.rake +193 -0
  42. data/templates/pg_hba.conf.erb +47 -0
  43. data/templates/pgbackrest.conf.erb +43 -0
  44. data/templates/pgbouncer.ini.erb +55 -0
  45. data/templates/postgresql.conf.erb +157 -0
  46. data/templates/repmgr.conf.erb +40 -0
  47. metadata +224 -0
@@ -0,0 +1,67 @@
1
+ require_relative 'active_postgres/version'
2
+ require_relative 'active_postgres/configuration'
3
+ require_relative 'active_postgres/credentials'
4
+ require_relative 'active_postgres/secrets'
5
+
6
+ # Utilities
7
+ require_relative 'active_postgres/log_sanitizer'
8
+ require_relative 'active_postgres/logger'
9
+ require_relative 'active_postgres/retry_helper'
10
+ require_relative 'active_postgres/error_handler'
11
+ require_relative 'active_postgres/validator'
12
+ require_relative 'active_postgres/rollback_manager'
13
+
14
+ # Shared modules
15
+ require_relative 'active_postgres/component_resolver'
16
+
17
+ # Core functionality
18
+ require_relative 'active_postgres/deployment_flow'
19
+ require_relative 'active_postgres/cluster_deployment_flow'
20
+ require_relative 'active_postgres/standby_deployment_flow'
21
+ require_relative 'active_postgres/cli'
22
+ require_relative 'active_postgres/installer'
23
+ require_relative 'active_postgres/ssh_executor'
24
+ require_relative 'active_postgres/health_checker'
25
+ require_relative 'active_postgres/failover'
26
+ require_relative 'active_postgres/performance_tuner'
27
+ require_relative 'active_postgres/connection_pooler'
28
+
29
+ # Components
30
+ require_relative 'active_postgres/components/base'
31
+ require_relative 'active_postgres/components/core'
32
+ require_relative 'active_postgres/components/repmgr'
33
+ require_relative 'active_postgres/components/pgbouncer'
34
+ require_relative 'active_postgres/components/pgbackrest'
35
+ require_relative 'active_postgres/components/monitoring'
36
+ require_relative 'active_postgres/components/ssl'
37
+ require_relative 'active_postgres/components/extensions'
38
+
39
+ # Rails integration
40
+ require_relative 'active_postgres/rails/database_config'
41
+ require_relative 'active_postgres/rails/migration_guard'
42
+
43
+ begin
44
+ require_relative 'active_postgres/railtie'
45
+ rescue LoadError
46
+ # Rails not available - skip railtie
47
+ end
48
+
49
+ module ActivePostgres
50
+ class Error < StandardError; end
51
+
52
+ def self.root
53
+ File.expand_path('..', __dir__)
54
+ end
55
+
56
+ def self.status
57
+ config = Configuration.load
58
+ health_checker = HealthChecker.new(config)
59
+ health_checker.cluster_status
60
+ end
61
+
62
+ def self.failover_to(node_or_host)
63
+ config = Configuration.load
64
+ failover = Failover.new(config)
65
+ failover.promote(node_or_host)
66
+ end
67
+ end