Class: Seira::Db
- Inherits:
-
Object
- Object
- Seira::Db
- Includes:
- Commands
- Defined in:
- lib/seira/db.rb,
lib/seira/db/create.rb,
lib/seira/db/alter_proxyuser_roles.rb
Defined Under Namespace
Classes: AlterProxyuserRoles, Create
Constant Summary collapse
- VALID_ACTIONS =
%w[help create delete list restart connect ps kill analyze create-readonly-user psql table-sizes index-sizes vacuum unused-indexes unused-indices user-connections info alter-proxyuser-roles].freeze
- SUMMARY =
"Manage your Cloud SQL Postgres databases.".freeze
Instance Attribute Summary collapse
-
#action ⇒ Object
readonly
Returns the value of attribute action.
-
#app ⇒ Object
readonly
Returns the value of attribute app.
-
#args ⇒ Object
readonly
Returns the value of attribute args.
-
#context ⇒ Object
readonly
Returns the value of attribute context.
Instance Method Summary collapse
-
#initialize(app:, action:, args:, context:) ⇒ Db
constructor
A new instance of Db.
-
#primary_instance ⇒ Object
NOTE: Relies on the pgbouncer instance being named based on the db name, as is done in create command.
- #run ⇒ Object
Methods included from Commands
#gcloud, gcloud, kubectl, #kubectl
Constructor Details
#initialize(app:, action:, args:, context:) ⇒ Db
Returns a new instance of Db.
16 17 18 19 20 21 |
# File 'lib/seira/db.rb', line 16 def initialize(app:, action:, args:, context:) @app = app @action = action @args = args @context = context end |
Instance Attribute Details
#action ⇒ Object (readonly)
Returns the value of attribute action.
14 15 16 |
# File 'lib/seira/db.rb', line 14 def action @action end |
#app ⇒ Object (readonly)
Returns the value of attribute app.
14 15 16 |
# File 'lib/seira/db.rb', line 14 def app @app end |
#args ⇒ Object (readonly)
Returns the value of attribute args.
14 15 16 |
# File 'lib/seira/db.rb', line 14 def args @args end |
#context ⇒ Object (readonly)
Returns the value of attribute context.
14 15 16 |
# File 'lib/seira/db.rb', line 14 def context @context end |
Instance Method Details
#primary_instance ⇒ Object
NOTE: Relies on the pgbouncer instance being named based on the db name, as is done in create command
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/seira/db.rb', line 67 def primary_instance database_url = Helpers.get_secret(context: context, key: 'DATABASE_URL') return nil unless database_url primary_uri = URI.parse(database_url) host = primary_uri.host # Convert handshake-onyx-burmese-pgbouncer-service to handshake-onyx-burmese host.gsub('-pgbouncer-service', '') end |
#run ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/seira/db.rb', line 23 def run case action when 'help' run_help when 'create' run_create when 'delete' run_delete when 'list' run_list when 'restart' run_restart when 'connect' run_connect when 'ps' run_ps when 'kill' run_kill when 'analyze' run_analyze when 'create-readonly-user' run_create_readonly_user when 'psql' run_psql when 'table-sizes' run_table_sizes when 'index-sizes' run_index_sizes when 'vacuum' run_vacuum when 'unused-indexes', 'unused-indices' run_unused_indexes when 'user-connections' run_user_connections when 'info' run_info when 'alter-proxyuser-roles' run_alter_proxyuser_roles else fail "Unknown command encountered" end end |