refresher 0.1.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.
- checksums.yaml +7 -0
- data/lib/refresher.rb +5 -0
- data/lib/refresher/railtie.rb +11 -0
- data/lib/sql/postgres_head.sql +10 -0
- data/lib/tasks/db_refresher.rake +44 -0
- data/refresher.gemspec +16 -0
- metadata +48 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c0d02ca1b94a9af4aa2786669ed85345e5d6bdf0
|
4
|
+
data.tar.gz: 66199016383e6878e09621c8b3cf46d79aa12a50
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: fa59a2eaa73d0dd0daddf6da814906f275fca293e0c9760ad443a7cf5797ae9f263e3ad7e1d082459d4feeb600c444c8437548169a237a377b87e23fb536164e
|
7
|
+
data.tar.gz: 007b3b89459a793eb7714ecd1ed6ce424556128c78b20e102d00076af2e77087f4cfa1292b7985b364c0d95922979df335252555564ceaa0a3c690dd8253f3f2
|
data/lib/refresher.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
DROP DATABASE s{db_name};
|
2
|
+
CREATE DATABASE s{db_name};
|
3
|
+
CREATE USER s{user_name} WITH PASSWORD 'password';
|
4
|
+
ALTER USER s{user_name} with createdb;
|
5
|
+
GRANT ALL PRIVILEGES ON DATABASE s{db_name} TO s{user_name};
|
6
|
+
ALTER DATABASE "s{db_name}" OWNER TO "s{user_name}";
|
7
|
+
|
8
|
+
\c s{db_name};
|
9
|
+
ALTER SCHEMA public OWNER TO "s{user_name}";
|
10
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
namespace :db_refresher do
|
2
|
+
desc 'Refresh current db state to all migrations (from cache if available)'
|
3
|
+
task refresh: :environment do
|
4
|
+
|
5
|
+
conn = nil
|
6
|
+
safe_schema_head_sql = nil
|
7
|
+
use_safe = false
|
8
|
+
|
9
|
+
begin
|
10
|
+
conn = ActiveRecord::Base.connection
|
11
|
+
safe_schema_head_sql = "drop schema public cascade; create schema public;"
|
12
|
+
use_safe = true
|
13
|
+
sql = ActiveRecord::Base.send(:sanitize_sql_array, safe_schema_head_sql)
|
14
|
+
conn.execute(sql)
|
15
|
+
rescue ActiveRecord::NoDatabaseError
|
16
|
+
safe_schema_head_sql = File.read(File.join(File.dirname(__FILE__), '..', 'sql', 'postgres_head.sql'))
|
17
|
+
|
18
|
+
config = Rails.configuration.database_configuration[Rails.env]
|
19
|
+
|
20
|
+
variables = {
|
21
|
+
db_name: config['database'],
|
22
|
+
user_name: config['username'],
|
23
|
+
}
|
24
|
+
|
25
|
+
variables.each_pair do |key, value|
|
26
|
+
safe_schema_head_sql = safe_schema_head_sql.gsub("s{#{key}}", value)
|
27
|
+
end
|
28
|
+
|
29
|
+
File.write('/tmp/refresh_db.sql', safe_schema_head_sql)
|
30
|
+
|
31
|
+
system("sudo -u postgres psql < /tmp/refresh_db.sql")
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
desc 'Refresh current cache'
|
38
|
+
task refresh_cache: :environment do
|
39
|
+
puts "Refresh with cache!"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
desc 'Run default refresh task'
|
44
|
+
task :db_refresher => ['db_refresher:refresh']
|
data/refresher.gemspec
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
|
3
|
+
s.name = 'refresher'
|
4
|
+
s.version = '0.1.0'
|
5
|
+
s.date = '2016-03-27'
|
6
|
+
s.summary = "db-refresher"
|
7
|
+
s.description = "Fast database prototyping with Rails"
|
8
|
+
s.authors = ["Mufid Afif"]
|
9
|
+
s.email = 'mufid@outlook.com'
|
10
|
+
s.files = [
|
11
|
+
'refresher.gemspec',
|
12
|
+
].concat( Dir.glob('lib/**/*').reject {|f| File.directory?(f) || f =~ /~$/ } )
|
13
|
+
# s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
s.homepage = 'https://github.com/mufid/refresher'
|
15
|
+
s.license = 'MIT'
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: refresher
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Mufid Afif
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: Fast database prototyping with Rails
|
14
|
+
email: mufid@outlook.com
|
15
|
+
executables: []
|
16
|
+
extensions: []
|
17
|
+
extra_rdoc_files: []
|
18
|
+
files:
|
19
|
+
- lib/refresher.rb
|
20
|
+
- lib/refresher/railtie.rb
|
21
|
+
- lib/sql/postgres_head.sql
|
22
|
+
- lib/tasks/db_refresher.rake
|
23
|
+
- refresher.gemspec
|
24
|
+
homepage: https://github.com/mufid/refresher
|
25
|
+
licenses:
|
26
|
+
- MIT
|
27
|
+
metadata: {}
|
28
|
+
post_install_message:
|
29
|
+
rdoc_options: []
|
30
|
+
require_paths:
|
31
|
+
- lib
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
requirements: []
|
43
|
+
rubyforge_project:
|
44
|
+
rubygems_version: 2.5.1
|
45
|
+
signing_key:
|
46
|
+
specification_version: 4
|
47
|
+
summary: db-refresher
|
48
|
+
test_files: []
|