pgai 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd5bb462021691510f2c194497d6fb87ef5e100a9c48d7ca1c9afab037774628
4
- data.tar.gz: 636221fc95e3cc65f22267fe0d922129749104d9eaf9658e15e408cd8b2df1e0
3
+ metadata.gz: bbd22b8be81c76ea9a661cd5b9f0befffeade51768c562bdfa9991f84e998401
4
+ data.tar.gz: 9281676b174a9553b6a1042f787c8f00510f25e117c6736ce3a5f4a8bf79a0c1
5
5
  SHA512:
6
- metadata.gz: f3cdda7843c5752d3fcfd0bcae46b4184c2104800d9c071eb056b2f719be7f905f2c88ac92ba2bac9af825afdf446e2f8e674b34d2d39476024ebd1f89fc6e7b
7
- data.tar.gz: 39b881e6da03d37b8950bedad53e1d2093260f85bb1ee8a4640ad1e1f2d90d931d2a4eef11de89b5173fa9ae644277f52f22309b334789ad1257043cde5d993e
6
+ metadata.gz: a2d1852ef9c05a0827f35c1af73b3e805578cd849010dc679f2796f46eae454c468051ba4d9128e25477c5096de595f8126bc2da0540fa307351fca8eefde250
7
+ data.tar.gz: e4eb38d1c0dce730db90ef99b7396e06536c193c17e41e840cd48a908f14fc684573c3d250ca8821d57086a8bc6956c5663386093a0452c61e749feede460908
data/README.md CHANGED
@@ -63,6 +63,12 @@ pgai connect <env alias>
63
63
 
64
64
  Multiple `connect` commands for an environment will connect to the same clone, it won't start a new one.
65
65
 
66
+ `pgai info <env alias>` prints out a database URL variable that can be used from Rails to integrate with dblab. Example for `CI` database:
67
+
68
+ ```shell
69
+ CI_DATABASE_URL="postgresql://foo:bar@localhost:9000/foo_test" bin/rails c -e test
70
+ ```
71
+
66
72
  ### Features
67
73
 
68
74
  - multiple psql sessions to the same clone
data/lib/pgai/cli/main.rb CHANGED
@@ -25,6 +25,13 @@ module Pgai::Cli
25
25
  Pgai::CloneManager.new(env, config: configuration).cleanup
26
26
  end
27
27
 
28
+ desc "reset database-name", "Reset clone's state"
29
+ def reset(name)
30
+ env = configuration.enviroments.fetch(name)
31
+
32
+ Pgai::CloneManager.new(env, config: configuration).reset
33
+ end
34
+
28
35
  desc "info database-name", "Show clone details"
29
36
  def info(name)
30
37
  env = configuration.enviroments.fetch(name)
@@ -28,14 +28,24 @@ module Pgai
28
28
  port_forward.stop
29
29
  end
30
30
 
31
+ def reset
32
+ configure_enviroment
33
+ return unless find_raw_clone
34
+
35
+ dblab.reset_clone(id: clone_id)
36
+ end
37
+
31
38
  def info
32
39
  configure_enviroment
33
40
 
34
41
  clone = find_clone
35
42
  return {} unless clone
36
43
 
44
+ database_url = "#{enviroment_alias.to_s.upcase}_DATABASE_URL='#{clone.database_url}'"
45
+
37
46
  {
38
- connection_string: clone.connection_string,
47
+ psql_connection_string: clone.connection_string,
48
+ rails_database_url: database_url,
39
49
  created_at: clone.created_at,
40
50
  data_state_at: clone.data_state_at
41
51
  }
@@ -108,8 +118,12 @@ module Pgai
108
118
  environment.fetch(:port)
109
119
  end
110
120
 
121
+ def enviroment_alias
122
+ environment.fetch(:alias)
123
+ end
124
+
111
125
  def clone_id
112
- @clone_id ||= [config.clone_prefix, environment.fetch(:alias)].join("_")
126
+ @clone_id ||= [config.clone_prefix, enviroment_alias].join("_")
113
127
  end
114
128
 
115
129
  def clone_user
data/lib/pgai/config.rb CHANGED
@@ -10,6 +10,10 @@ module Pgai
10
10
  def connection_string
11
11
  "'host=#{host} port=#{port} user=#{user} dbname=#{dbname} password=#{password}'"
12
12
  end
13
+
14
+ def database_url
15
+ "postgresql://#{user}:#{password}@#{host}:#{port}/#{dbname}"
16
+ end
13
17
  end
14
18
 
15
19
  attr_accessor :clone_prefix
data/lib/pgai/dblab.rb CHANGED
@@ -37,6 +37,10 @@ module Pgai
37
37
  dblab("clone", "destroy", id, raw: true)
38
38
  end
39
39
 
40
+ def reset_clone(id:)
41
+ dblab("clone", "reset", id, raw: true)
42
+ end
43
+
40
44
  private
41
45
 
42
46
  attr_reader :config, :hostname
data/lib/pgai/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pgai
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pgai
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marius Bobin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-09 00:00:00.000000000 Z
11
+ date: 2023-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor