gotime-cassandra_object 2.9.1 → 2.9.2
Sign up to get free protection for your applications and to get access to all the features.
@@ -96,11 +96,9 @@ module CassandraObject
|
|
96
96
|
end
|
97
97
|
|
98
98
|
private
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
end
|
103
|
-
|
99
|
+
def self.column_family_tasks
|
100
|
+
Tasks::ColumnFamily.new(CassandraObject::Base.connection.keyspace)
|
101
|
+
end
|
104
102
|
end
|
105
103
|
end
|
106
104
|
end
|
@@ -1,7 +1,5 @@
|
|
1
1
|
module CassandraObject
|
2
|
-
|
3
2
|
module Tasks
|
4
|
-
|
5
3
|
class ColumnFamily
|
6
4
|
|
7
5
|
COMPARATOR_TYPES = { :time => 'TimeUUIDType',
|
@@ -21,14 +19,14 @@ module CassandraObject
|
|
21
19
|
connection.schema.cf_defs.find { |cf_def| cf_def.name == name.to_s }
|
22
20
|
end
|
23
21
|
|
24
|
-
def create(name
|
22
|
+
def create(name)
|
25
23
|
cf = Cassandra::ColumnFamily.new
|
26
24
|
cf.name = name.to_s
|
27
25
|
cf.keyspace = @keyspace.to_s
|
28
26
|
cf.comparator_type = 'BytesType'
|
29
27
|
cf.column_type = 'Standard'
|
30
28
|
|
31
|
-
|
29
|
+
yield(cf) if block_given?
|
32
30
|
|
33
31
|
post_process_column_family(cf)
|
34
32
|
connection.add_column_family(cf)
|
@@ -62,14 +62,13 @@ module CassandraObject
|
|
62
62
|
end
|
63
63
|
|
64
64
|
private
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
65
|
+
def connection
|
66
|
+
unless @connection
|
67
|
+
c = CassandraObject::Base.connection
|
68
|
+
@connection = Cassandra.new('system', c.servers, c.thrift_client_options)
|
69
|
+
end
|
70
|
+
@connection
|
70
71
|
end
|
71
|
-
@connection
|
72
|
-
end
|
73
72
|
|
74
73
|
end
|
75
74
|
|
@@ -1,65 +1,36 @@
|
|
1
1
|
namespace :ks do
|
2
|
-
task :configure => :environment do
|
3
|
-
@configs = YAML.load_file(Rails.root.join("config", "cassandra.yml"))
|
4
|
-
@config = @configs[Rails.env || 'development']
|
5
|
-
end
|
6
|
-
|
7
|
-
#task :set_keyspace => :configure do
|
8
|
-
#set_keyspace
|
9
|
-
#end
|
10
|
-
|
11
2
|
desc 'Create the keyspace in config/cassandra.yml for the current environment'
|
12
|
-
task :create => :
|
13
|
-
CassandraObject::Tasks::Keyspace.new.create
|
14
|
-
puts "Created keyspace: #{
|
15
|
-
end
|
16
|
-
|
17
|
-
namespace :create do
|
18
|
-
desc 'Create keyspaces in config/cassandra.yml for all environments'
|
19
|
-
task :all => :configure do
|
20
|
-
created = []
|
21
|
-
@configs.values.each do |config|
|
22
|
-
CassandraObject::Tasks::Keyspace.new.create config['keyspace'], config
|
23
|
-
created << config['keyspace']
|
24
|
-
end
|
25
|
-
puts "Created keyspaces: #{created.join(', ')}"
|
26
|
-
end
|
3
|
+
task :create => :environment do
|
4
|
+
CassandraObject::Tasks::Keyspace.new.create config['keyspace'], config
|
5
|
+
puts "Created keyspace: #{config['keyspace']}"
|
27
6
|
end
|
28
7
|
|
29
8
|
desc 'Drop keyspace in config/cassandra.yml for the current environment'
|
30
|
-
task :drop => :
|
31
|
-
CassandraObject::Tasks::Keyspace.new.drop
|
32
|
-
puts "Dropped keyspace: #{
|
33
|
-
end
|
34
|
-
|
35
|
-
namespace :drop do
|
36
|
-
desc 'Drop keyspaces in config/cassandra.yml for all environments'
|
37
|
-
task :all => :configure do
|
38
|
-
dropped = []
|
39
|
-
@configs.values.each do |config|
|
40
|
-
CassandraObject::Tasks::Keyspace.new.drop config['keyspace']
|
41
|
-
dropped << config['keyspace']
|
42
|
-
end
|
43
|
-
puts "Dropped keyspaces: #{dropped.join(', ')}"
|
44
|
-
end
|
9
|
+
task :drop => :environment do
|
10
|
+
CassandraObject::Tasks::Keyspace.new.drop config['keyspace']
|
11
|
+
puts "Dropped keyspace: #{config['keyspace']}"
|
45
12
|
end
|
46
13
|
|
47
14
|
desc 'Migrate the keyspace (options: VERSION=x)'
|
48
|
-
task :migrate => :
|
15
|
+
task :migrate => :environment do
|
49
16
|
version = ( ENV['VERSION'] ? ENV['VERSION'].to_i : nil )
|
50
17
|
CassandraObject::Schema::Migrator.migrate CassandraObject::Schema::Migrator.migrations_path, version
|
51
18
|
schema_dump
|
52
19
|
end
|
53
20
|
|
21
|
+
namespace :migrate do
|
22
|
+
task :reset => ["ks:drop", "ks:create", "ks:migrate"]]
|
23
|
+
end
|
24
|
+
|
54
25
|
desc 'Rolls the schema back to the previous version (specify steps w/ STEP=n)'
|
55
|
-
task :rollback => :
|
26
|
+
task :rollback => :environment do
|
56
27
|
step = ENV['STEP'] ? ENV['STEP'].to_i : 1
|
57
28
|
CassandraObject::Schema::Migrator.rollback CassandraObject::Schema::Migrator.migrations_path, step
|
58
29
|
schema_dump
|
59
30
|
end
|
60
31
|
|
61
32
|
desc 'Pushes the schema to the next version (specify steps w/ STEP=n)'
|
62
|
-
task :forward => :
|
33
|
+
task :forward => :environment do
|
63
34
|
step = ENV['STEP'] ? ENV['STEP'].to_i : 1
|
64
35
|
CassandraObject::Schema::Migrator.forward CassandraObject::Schema::Migrator.migrations_path, step
|
65
36
|
schema_dump
|
@@ -67,55 +38,48 @@ namespace :ks do
|
|
67
38
|
|
68
39
|
namespace :schema do
|
69
40
|
desc 'Create ks/schema.json file that can be portably used against any Cassandra instance supported by CassandraObject'
|
70
|
-
task :dump => :
|
41
|
+
task :dump => :environment do
|
71
42
|
schema_dump
|
72
43
|
end
|
73
44
|
|
74
45
|
desc 'Load ks/schema.json file into Cassandra'
|
75
|
-
task :load => :
|
46
|
+
task :load => :environment do
|
76
47
|
schema_load
|
77
48
|
end
|
78
49
|
end
|
79
50
|
|
80
51
|
namespace :test do
|
81
52
|
desc 'Load the development schema in to the test keyspace'
|
82
|
-
task :prepare => :
|
53
|
+
task :prepare => :environment do
|
83
54
|
schema_dump :development
|
84
55
|
schema_load :test
|
85
56
|
end
|
86
57
|
end
|
87
58
|
|
88
|
-
desc 'Retrieves the current schema version number'
|
89
|
-
task :version => :set_keyspace do
|
90
|
-
version = CassandraObject::Schema::Migrator.current_version
|
91
|
-
puts "Current version: #{version}"
|
92
|
-
end
|
93
|
-
|
94
59
|
private
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
60
|
+
def schema_dump(env = Rails.env)
|
61
|
+
ks = set_keyspace env
|
62
|
+
File.open "#{Rails.root}/ks/schema.json", 'w' do |file|
|
63
|
+
schema = ActiveSupport::JSON.decode(ks.schema_dump.to_json)
|
64
|
+
JSON.pretty_generate(schema).split(/\n/).each do |line|
|
65
|
+
file.puts line
|
66
|
+
end
|
102
67
|
end
|
103
68
|
end
|
104
|
-
end
|
105
69
|
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
70
|
+
def schema_load(env = Rails.env)
|
71
|
+
ks = set_keyspace env
|
72
|
+
File.open "#{Rails.root}/ks/schema.json", 'r' do |file|
|
73
|
+
hash = JSON.parse(file.read(nil))
|
74
|
+
ks.schema_load CassandraObject::Tasks::Keyspace.parse(hash)
|
75
|
+
end
|
111
76
|
end
|
112
|
-
end
|
113
77
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
78
|
+
def config
|
79
|
+
@config ||= begin
|
80
|
+
configs = YAML.load_file(Rails.root.join("config", "cassandra.yml"))
|
81
|
+
configs[Rails.env || 'development']
|
82
|
+
end
|
83
|
+
end
|
120
84
|
end
|
121
85
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gotime-cassandra_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.9.
|
4
|
+
version: 2.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2012-01-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
17
|
-
requirement: &
|
17
|
+
requirement: &70334356748580 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '3.0'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70334356748580
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: cassandra
|
28
|
-
requirement: &
|
28
|
+
requirement: &70334356747580 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 0.12.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70334356747580
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bundler
|
39
|
-
requirement: &
|
39
|
+
requirement: &70334356745380 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: 1.0.0
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70334356745380
|
48
48
|
description: Cassandra ActiveModel
|
49
49
|
email: gems@gotime.com
|
50
50
|
executables: []
|