gotime-cassandra_object 2.9.1 → 2.9.2
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.
@@ -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: []
|