metasploit_data_models 0.24.5 → 1.0.0.pre.rails.pre.4.0a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +1 -1
  3. data/.simplecov +1 -1
  4. data/Gemfile +8 -5
  5. data/app/models/mdm/api_key.rb +1 -0
  6. data/app/models/mdm/client.rb +2 -2
  7. data/app/models/mdm/cred.rb +13 -13
  8. data/app/models/mdm/event.rb +5 -4
  9. data/app/models/mdm/exploit_attempt.rb +1 -0
  10. data/app/models/mdm/exploited_host.rb +1 -1
  11. data/app/models/mdm/host.rb +37 -20
  12. data/app/models/mdm/host_detail.rb +2 -2
  13. data/app/models/mdm/host_tag.rb +1 -1
  14. data/app/models/mdm/listener.rb +2 -1
  15. data/app/models/mdm/loot.rb +1 -0
  16. data/app/models/mdm/macro.rb +1 -1
  17. data/app/models/mdm/mod_ref.rb +1 -0
  18. data/app/models/mdm/module/action.rb +1 -7
  19. data/app/models/mdm/module/arch.rb +0 -6
  20. data/app/models/mdm/module/author.rb +1 -8
  21. data/app/models/mdm/module/detail.rb +1 -1
  22. data/app/models/mdm/module/mixin.rb +0 -6
  23. data/app/models/mdm/module/platform.rb +0 -6
  24. data/app/models/mdm/module/ref.rb +0 -6
  25. data/app/models/mdm/module/target.rb +0 -7
  26. data/app/models/mdm/nexpose_console.rb +1 -0
  27. data/app/models/mdm/note.rb +3 -3
  28. data/app/models/mdm/ref.rb +0 -6
  29. data/app/models/mdm/route.rb +2 -1
  30. data/app/models/mdm/service.rb +1 -1
  31. data/app/models/mdm/session.rb +8 -7
  32. data/app/models/mdm/session_event.rb +2 -1
  33. data/app/models/mdm/tag.rb +2 -2
  34. data/app/models/mdm/task.rb +1 -3
  35. data/app/models/mdm/user.rb +4 -5
  36. data/app/models/mdm/vuln.rb +8 -7
  37. data/app/models/mdm/vuln_attempt.rb +1 -0
  38. data/app/models/mdm/vuln_detail.rb +3 -2
  39. data/app/models/mdm/vuln_ref.rb +1 -1
  40. data/app/models/mdm/web_form.rb +2 -1
  41. data/app/models/mdm/web_page.rb +3 -2
  42. data/app/models/mdm/web_site.rb +3 -2
  43. data/app/models/mdm/web_vuln.rb +1 -0
  44. data/app/models/mdm/wmap_request.rb +12 -0
  45. data/app/models/mdm/wmap_target.rb +12 -0
  46. data/app/models/mdm/workspace.rb +4 -3
  47. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +0 -3
  48. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +0 -12
  49. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +0 -1
  50. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +0 -2
  51. data/app/validators/ip_format_validator.rb +6 -1
  52. data/config/initializers/ipaddr.rb +35 -0
  53. data/db/migrate/002_add_workspaces.rb +2 -2
  54. data/db/migrate/007_add_loots.rb +1 -1
  55. data/db/migrate/008_create_users.rb +1 -1
  56. data/db/migrate/011_add_reports.rb +1 -1
  57. data/db/migrate/012_add_tasks.rb +1 -1
  58. data/db/migrate/026_add_creds_table.rb +2 -2
  59. data/db/migrate/20100824151500_add_exploited_table.rb +1 -1
  60. data/db/migrate/20100911122000_add_report_templates.rb +1 -1
  61. data/db/migrate/20100916175000_add_campaigns_and_templates.rb +1 -1
  62. data/db/migrate/20101001000000_add_web_tables.rb +13 -13
  63. data/db/migrate/20110204112800_add_host_tags.rb +1 -1
  64. data/db/migrate/20110527000001_add_api_keys_table.rb +1 -1
  65. data/db/migrate/20110606000001_add_macros_table.rb +2 -2
  66. data/db/migrate/20110624000001_add_listeners_table.rb +1 -1
  67. data/db/migrate/20110630000001_add_nexpose_consoles_table.rb +1 -1
  68. data/db/migrate/20110717000001_add_profiles_table.rb +1 -1
  69. data/db/migrate/20130522001343_create_task_creds.rb +1 -1
  70. data/db/migrate/20130522032517_create_task_hosts.rb +1 -1
  71. data/db/migrate/20130522041110_create_task_services.rb +1 -1
  72. data/db/migrate/20130604145732_create_task_sessions.rb +1 -1
  73. data/db/migrate/20131002004641_create_automatic_exploitation_matches.rb +1 -1
  74. data/db/migrate/20131002164449_create_automatic_exploitation_match_sets.rb +1 -1
  75. data/db/migrate/20131008213344_create_automatic_exploitation_runs.rb +1 -1
  76. data/db/migrate/20131017150735_create_automatic_exploitation_match_results.rb +1 -1
  77. data/db/migrate/20150219173821_create_module_runs.rb +1 -1
  78. data/db/migrate/20150317145455_rename_module_indices.rb +29 -0
  79. data/db/migrate/20150421211719_rename_automatic_exploitation_index.rb +16 -0
  80. data/lib/mdm/host/operating_system_normalization.rb +1 -1
  81. data/lib/metasploit_data_models.rb +1 -0
  82. data/lib/metasploit_data_models/engine.rb +1 -1
  83. data/lib/metasploit_data_models/version.rb +5 -3
  84. data/metasploit_data_models.gemspec +11 -8
  85. data/spec/app/models/mdm/event_spec.rb +17 -11
  86. data/spec/app/models/mdm/host_spec.rb +2 -2
  87. data/spec/app/models/mdm/module/action_spec.rb +0 -5
  88. data/spec/app/models/mdm/module/arch_spec.rb +0 -5
  89. data/spec/app/models/mdm/module/author_spec.rb +0 -6
  90. data/spec/app/models/mdm/module/detail_spec.rb +3 -3
  91. data/spec/app/models/mdm/module/mixin_spec.rb +0 -5
  92. data/spec/app/models/mdm/module/platform_spec.rb +0 -5
  93. data/spec/app/models/mdm/module/ref_spec.rb +0 -5
  94. data/spec/app/models/mdm/module/target_spec.rb +0 -6
  95. data/spec/app/models/mdm/ref_spec.rb +0 -3
  96. data/spec/app/models/mdm/service_spec.rb +1 -1
  97. data/spec/app/models/mdm/web_vuln_spec.rb +3 -3
  98. data/spec/app/models/mdm/wmap_request_spec.rb +2 -0
  99. data/spec/app/models/mdm/wmap_target_spec.rb +2 -0
  100. data/spec/app/models/mdm/workspace_spec.rb +2 -2
  101. data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +1 -1
  102. data/spec/dummy/config/application.rb +1 -7
  103. data/spec/dummy/config/environments/development.rb +2 -13
  104. data/spec/dummy/config/environments/production.rb +2 -0
  105. data/spec/dummy/config/environments/test.rb +2 -6
  106. data/spec/dummy/db/structure.sql +24 -19
  107. data/spec/dummy/db/structure.sql.from_rails_3 +3403 -0
  108. data/spec/factories/mdm/module/details.rb +1 -1
  109. data/spec/lib/ipaddr_spec.rb +31 -0
  110. data/spec/lib/metasploit_data_models/version_spec.rb +1 -3
  111. data/spec/support/shared/examples/coerces_inet_column_type_to_string.rb +15 -0
  112. metadata +63 -28
@@ -40,20 +40,26 @@ describe Mdm::Event do
40
40
 
41
41
  context 'scopes' do
42
42
  context 'flagged' do
43
+ let(:workspace) {FactoryGirl.create(:mdm_workspace)}
44
+ let(:flagged_event) { FactoryGirl.create(:mdm_event, :workspace => workspace, :name => 'flagme', :critical => true, :seen => false) }
45
+ let(:non_critical_event) { FactoryGirl.create(:mdm_event, :workspace => workspace, :name => 'dontflagmebro', :critical => false, :seen => false) }
46
+
47
+ before(:each) do
48
+ flagged_event
49
+ non_critical_event
50
+ end
51
+
52
+ it 'should included critical unseen events' do
53
+ Mdm::Event.flagged.should eq [flagged_event]
54
+ end
43
55
  it 'should exclude non-critical events' do
44
- flagged_event = FactoryGirl.create(:mdm_event, :name => 'flagme', :critical => true, :seen => false)
45
- non_critical_event = FactoryGirl.create(:mdm_event, :name => 'dontflagmebro', :critical => false, :seen => false)
46
- flagged_set = Mdm::Event.flagged
47
- flagged_set.should include(flagged_event)
48
- flagged_set.should_not include(non_critical_event)
56
+ Mdm::Event.flagged.should_not include(non_critical_event)
49
57
  end
50
58
 
51
- it 'should exclude seen events' do
52
- flagged_event = FactoryGirl.create(:mdm_event, :name => 'flagme', :critical => true, :seen => false)
53
- non_critical_event = FactoryGirl.create(:mdm_event, :name => 'dontflagmebro', :critical => false, :seen => true)
54
- flagged_set = Mdm::Event.flagged
55
- flagged_set.should include(flagged_event)
56
- flagged_set.should_not include(non_critical_event)
59
+ it 'should exclude critical seen events' do
60
+ flagged_event.seen = true
61
+ flagged_event.save
62
+ Mdm::Event.flagged.should_not include(flagged_event)
57
63
  end
58
64
  end
59
65
 
@@ -319,7 +319,7 @@ describe Mdm::Host do
319
319
 
320
320
  context 'database' do
321
321
  context 'columns' do
322
- it { should have_db_column(:address).of_type(:string).with_options(:null => false) }
322
+ it { should have_db_column(:address).of_type(:inet).with_options(:null => false) }
323
323
  it { should have_db_column(:arch).of_type(:string) }
324
324
  it { should have_db_column(:comm).of_type(:string) }
325
325
  it { should have_db_column(:comments).of_type(:text) }
@@ -416,7 +416,7 @@ describe Mdm::Host do
416
416
  end
417
417
  end
418
418
  end
419
- it { should ensure_inclusion_of(:state).in_array(states).allow_nil }
419
+ it { should validate_inclusion_of(:state).in_array(states).allow_nil }
420
420
  it { should validate_presence_of(:workspace) }
421
421
  end
422
422
 
@@ -29,11 +29,6 @@ describe Mdm::Module::Action do
29
29
  end
30
30
  end
31
31
 
32
- context 'mass assignment security' do
33
- it { should_not allow_mass_assignment_of(:detail_id) }
34
- it { should allow_mass_assignment_of(:name) }
35
- end
36
-
37
32
  context 'validations' do
38
33
  it { should validate_presence_of(:detail) }
39
34
  it { should validate_presence_of(:name) }
@@ -29,11 +29,6 @@ describe Mdm::Module::Arch do
29
29
  end
30
30
  end
31
31
 
32
- context 'mass assignment security' do
33
- it { should_not allow_mass_assignment_of(:detail_id) }
34
- it { should allow_mass_assignment_of(:name) }
35
- end
36
-
37
32
  context 'validations' do
38
33
  it { should validate_presence_of(:detail) }
39
34
  it { should validate_presence_of(:name) }
@@ -39,12 +39,6 @@ describe Mdm::Module::Author do
39
39
  end
40
40
  end
41
41
 
42
- context 'mass assignment security' do
43
- it { should_not allow_mass_assignment_of(:detail_id) }
44
- it { should allow_mass_assignment_of(:email) }
45
- it { should allow_mass_assignment_of(:name) }
46
- end
47
-
48
42
  context 'validations' do
49
43
  it { should validate_presence_of(:detail) }
50
44
  it { should_not validate_presence_of(:email) }
@@ -173,14 +173,14 @@ describe Mdm::Module::Detail do
173
173
  end
174
174
 
175
175
  context 'validations' do
176
- it { should ensure_inclusion_of(:mtype).in_array(types) }
176
+ it { should validate_inclusion_of(:mtype).in_array(types) }
177
177
 
178
178
  # Because the boolean field will cast most strings to false,
179
- # ensure_inclusion_of(:privileged).in_array([true, false]) will fail on the disallowed values check.
179
+ # validate_inclusion_of(:privileged).in_array([true, false]) will fail on the disallowed values check.
180
180
 
181
181
  context 'rank' do
182
182
  it { should validate_numericality_of(:rank).only_integer }
183
- it { should ensure_inclusion_of(:rank).in_array(ranks) }
183
+ it { should validate_inclusion_of(:rank).in_array(ranks) }
184
184
  end
185
185
 
186
186
  it { should validate_presence_of(:refname) }
@@ -29,11 +29,6 @@ describe Mdm::Module::Mixin do
29
29
  end
30
30
  end
31
31
 
32
- context 'mass assignment security' do
33
- it { should_not allow_mass_assignment_of(:detail_id) }
34
- it { should allow_mass_assignment_of(:name) }
35
- end
36
-
37
32
  context 'validations' do
38
33
  it { should validate_presence_of(:detail) }
39
34
  it { should validate_presence_of(:name) }
@@ -29,11 +29,6 @@ describe Mdm::Module::Platform do
29
29
  end
30
30
  end
31
31
 
32
- context 'mass assignment security' do
33
- it { should_not allow_mass_assignment_of(:detail_id) }
34
- it { should allow_mass_assignment_of(:name) }
35
- end
36
-
37
32
  context 'validations' do
38
33
  it { should validate_presence_of :detail }
39
34
  it { should validate_presence_of :name }
@@ -53,11 +53,6 @@ describe Mdm::Module::Ref do
53
53
  end
54
54
  end
55
55
 
56
- context 'mass assignment security' do
57
- it { should_not allow_mass_assignment_of(:detail_id) }
58
- it { should allow_mass_assignment_of(:name) }
59
- end
60
-
61
56
  context 'validations' do
62
57
  it { should validate_presence_of(:detail) }
63
58
  it { should validate_presence_of(:name) }
@@ -30,12 +30,6 @@ describe Mdm::Module::Target do
30
30
  end
31
31
  end
32
32
 
33
- context 'mass assignment security' do
34
- it { should_not allow_mass_assignment_of(:detail_id) }
35
- it { should allow_mass_assignment_of(:index) }
36
- it { should allow_mass_assignment_of(:name) }
37
- end
38
-
39
33
  context 'validations' do
40
34
  it { should validate_presence_of(:detail) }
41
35
  it { should validate_presence_of(:index) }
@@ -71,7 +71,4 @@ describe Mdm::Ref do
71
71
  end
72
72
  end
73
73
 
74
- context 'mass assignment security' do
75
- it { should allow_mass_assignment_of(:name) }
76
- end
77
74
  end
@@ -152,7 +152,7 @@ describe Mdm::Service do
152
152
  }
153
153
 
154
154
  it { should validate_numericality_of(:port).only_integer }
155
- it { should ensure_inclusion_of(:proto).in_array(described_class::PROTOS) }
155
+ it { should validate_inclusion_of(:proto).in_array(described_class::PROTOS) }
156
156
 
157
157
  context 'when a duplicate service already exists' do
158
158
  let(:service1) { FactoryGirl.create(:mdm_service)}
@@ -111,8 +111,8 @@ describe Mdm::WebVuln do
111
111
 
112
112
  context 'validations' do
113
113
  it { should validate_presence_of :category }
114
- it { should ensure_inclusion_of(:confidence).in_range(confidence_range) }
115
- it { should ensure_inclusion_of(:method).in_array(methods) }
114
+ it { should validate_inclusion_of(:confidence).in_range(confidence_range) }
115
+ it { should validate_inclusion_of(:method).in_array(methods) }
116
116
  it { should validate_presence_of :name }
117
117
  it { should validate_presence_of :path }
118
118
 
@@ -281,7 +281,7 @@ describe Mdm::WebVuln do
281
281
  end
282
282
 
283
283
  it { should validate_presence_of :proof }
284
- it { should ensure_inclusion_of(:risk).in_range(risk_range) }
284
+ it { should validate_inclusion_of(:risk).in_range(risk_range) }
285
285
  it { should validate_presence_of :web_site }
286
286
  end
287
287
 
@@ -2,4 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Mdm::WmapRequest do
4
4
  it_should_behave_like 'Metasploit::Concern.run'
5
+
6
+ it_should_behave_like 'coerces inet column type to string', :address
5
7
  end
@@ -2,4 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Mdm::WmapTarget do
4
4
  it_should_behave_like 'Metasploit::Concern.run'
5
+
6
+ it_should_behave_like 'coerces inet column type to string', :address
5
7
  end
@@ -61,7 +61,7 @@ describe Mdm::Workspace do
61
61
  context '#normalize' do
62
62
  it 'should be called' do
63
63
  workspace.should_receive(:normalize)
64
- workspace.run_callbacks(:save, false)
64
+ workspace.run_callbacks(:save)
65
65
  end
66
66
  end
67
67
  end
@@ -550,7 +550,7 @@ describe Mdm::Workspace do
550
550
  web_forms = workspace.web_unique_forms([selected_address])
551
551
 
552
552
  web_forms.all? { |web_form|
553
- web_form.web_site.service.host.address.should == selected_address
553
+ web_form.web_site.service.host.address.to_s.should == selected_address
554
554
  }.should be_true
555
555
  end
556
556
  end
@@ -36,6 +36,6 @@ describe MetasploitDataModels::Search::Operation::Port::Number do
36
36
  end
37
37
 
38
38
  context 'validations' do
39
- it { should ensure_inclusion_of(:value).in_range(described_class::RANGE) }
39
+ it { should validate_inclusion_of(:value).in_range(described_class::RANGE) }
40
40
  end
41
41
  end
@@ -48,14 +48,8 @@ module Dummy
48
48
  # like if you have constraints or database-specific column types
49
49
  config.active_record.schema_format = :sql
50
50
 
51
- # Enforce whitelist mode for mass assignment.
52
- # This will create an empty whitelist of attributes available for mass-assignment for all models
53
- # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
54
- # parameters by using an attr_accessible or attr_protected declaration.
55
- config.active_record.whitelist_attributes = true
56
-
57
51
  # Enable the asset pipeline
58
- config.assets.enabled = true
52
+ config.assets.enabled = false
59
53
 
60
54
  # Version of your assets, change this if you want to expire all your assets
61
55
  config.assets.version = '1.0'
@@ -6,9 +6,6 @@ Dummy::Application.configure do
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Log error messages when you accidentally call methods on nil.
10
- config.whiny_nils = true
11
-
12
9
  # Show full error reports and disable caching
13
10
  config.consider_all_requests_local = true
14
11
  config.action_controller.perform_caching = false
@@ -19,19 +16,11 @@ Dummy::Application.configure do
19
16
  # Print deprecation notices to the Rails logger
20
17
  config.active_support.deprecation = :log
21
18
 
22
- # Only use best-standards-support built into browsers
23
- config.action_dispatch.best_standards_support = :builtin
24
-
25
- # Raise exception on mass assignment protection for Active Record models
26
- config.active_record.mass_assignment_sanitizer = :strict
27
-
28
- # Log the query plan for queries taking more than this (works
29
- # with SQLite, MySQL, and PostgreSQL)
30
- config.active_record.auto_explain_threshold_in_seconds = 0.5
31
-
32
19
  # Do not compress assets
33
20
  config.assets.compress = false
34
21
 
35
22
  # Expands the lines which load the assets
36
23
  config.assets.debug = true
24
+
25
+ config.eager_load = false
37
26
  end
@@ -64,4 +64,6 @@ Dummy::Application.configure do
64
64
  # Log the query plan for queries taking more than this (works
65
65
  # with SQLite, MySQL, and PostgreSQL)
66
66
  # config.active_record.auto_explain_threshold_in_seconds = 0.5
67
+
68
+ config.eager_load = true
67
69
  end
@@ -11,9 +11,6 @@ Dummy::Application.configure do
11
11
  config.serve_static_assets = true
12
12
  config.static_cache_control = "public, max-age=3600"
13
13
 
14
- # Log error messages when you accidentally call methods on nil
15
- config.whiny_nils = true
16
-
17
14
  # Show full error reports and disable caching
18
15
  config.consider_all_requests_local = true
19
16
  config.action_controller.perform_caching = false
@@ -29,9 +26,8 @@ Dummy::Application.configure do
29
26
  # ActionMailer::Base.deliveries array.
30
27
  config.action_mailer.delivery_method = :test
31
28
 
32
- # Raise exception on mass assignment protection for Active Record models
33
- config.active_record.mass_assignment_sanitizer = :strict
34
-
35
29
  # Print deprecation notices to the stderr
36
30
  config.active_support.deprecation = :stderr
31
+
32
+ config.eager_load = false
37
33
  end
@@ -3,6 +3,7 @@
3
3
  --
4
4
 
5
5
  SET statement_timeout = 0;
6
+ SET lock_timeout = 0;
6
7
  SET client_encoding = 'UTF8';
7
8
  SET standard_conforming_strings = on;
8
9
  SET check_function_bodies = false;
@@ -2829,17 +2830,17 @@ CREATE INDEX index_automatic_exploitation_match_sets_on_workspace_id ON automati
2829
2830
 
2830
2831
 
2831
2832
  --
2832
- -- Name: index_automatic_exploitation_matches_on_module_fullname; Type: INDEX; Schema: public; Owner: -; Tablespace:
2833
+ -- Name: index_automatic_exploitation_matches_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2833
2834
  --
2834
2835
 
2835
- CREATE INDEX index_automatic_exploitation_matches_on_module_fullname ON automatic_exploitation_matches USING btree (module_fullname);
2836
+ CREATE INDEX index_automatic_exploitation_matches_on_module_detail_id ON automatic_exploitation_matches USING btree (module_detail_id);
2836
2837
 
2837
2838
 
2838
2839
  --
2839
- -- Name: index_automatic_exploitation_matches_on_ref_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2840
+ -- Name: index_automatic_exploitation_matches_on_module_fullname; Type: INDEX; Schema: public; Owner: -; Tablespace:
2840
2841
  --
2841
2842
 
2842
- CREATE INDEX index_automatic_exploitation_matches_on_ref_id ON automatic_exploitation_matches USING btree (module_detail_id);
2843
+ CREATE INDEX index_automatic_exploitation_matches_on_module_fullname ON automatic_exploitation_matches USING btree (module_fullname);
2843
2844
 
2844
2845
 
2845
2846
  --
@@ -2913,24 +2914,24 @@ CREATE INDEX index_loots_on_module_run_id ON loots USING btree (module_run_id);
2913
2914
 
2914
2915
 
2915
2916
  --
2916
- -- Name: index_module_actions_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2917
+ -- Name: index_module_actions_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2917
2918
  --
2918
2919
 
2919
- CREATE INDEX index_module_actions_on_module_detail_id ON module_actions USING btree (detail_id);
2920
+ CREATE INDEX index_module_actions_on_detail_id ON module_actions USING btree (detail_id);
2920
2921
 
2921
2922
 
2922
2923
  --
2923
- -- Name: index_module_archs_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2924
+ -- Name: index_module_archs_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2924
2925
  --
2925
2926
 
2926
- CREATE INDEX index_module_archs_on_module_detail_id ON module_archs USING btree (detail_id);
2927
+ CREATE INDEX index_module_archs_on_detail_id ON module_archs USING btree (detail_id);
2927
2928
 
2928
2929
 
2929
2930
  --
2930
- -- Name: index_module_authors_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2931
+ -- Name: index_module_authors_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2931
2932
  --
2932
2933
 
2933
- CREATE INDEX index_module_authors_on_module_detail_id ON module_authors USING btree (detail_id);
2934
+ CREATE INDEX index_module_authors_on_detail_id ON module_authors USING btree (detail_id);
2934
2935
 
2935
2936
 
2936
2937
  --
@@ -2962,24 +2963,24 @@ CREATE INDEX index_module_details_on_refname ON module_details USING btree (refn
2962
2963
 
2963
2964
 
2964
2965
  --
2965
- -- Name: index_module_mixins_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2966
+ -- Name: index_module_mixins_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2966
2967
  --
2967
2968
 
2968
- CREATE INDEX index_module_mixins_on_module_detail_id ON module_mixins USING btree (detail_id);
2969
+ CREATE INDEX index_module_mixins_on_detail_id ON module_mixins USING btree (detail_id);
2969
2970
 
2970
2971
 
2971
2972
  --
2972
- -- Name: index_module_platforms_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2973
+ -- Name: index_module_platforms_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2973
2974
  --
2974
2975
 
2975
- CREATE INDEX index_module_platforms_on_module_detail_id ON module_platforms USING btree (detail_id);
2976
+ CREATE INDEX index_module_platforms_on_detail_id ON module_platforms USING btree (detail_id);
2976
2977
 
2977
2978
 
2978
2979
  --
2979
- -- Name: index_module_refs_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2980
+ -- Name: index_module_refs_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
2980
2981
  --
2981
2982
 
2982
- CREATE INDEX index_module_refs_on_module_detail_id ON module_refs USING btree (detail_id);
2983
+ CREATE INDEX index_module_refs_on_detail_id ON module_refs USING btree (detail_id);
2983
2984
 
2984
2985
 
2985
2986
  --
@@ -3004,10 +3005,10 @@ CREATE INDEX index_module_runs_on_user_id ON module_runs USING btree (user_id);
3004
3005
 
3005
3006
 
3006
3007
  --
3007
- -- Name: index_module_targets_on_module_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3008
+ -- Name: index_module_targets_on_detail_id; Type: INDEX; Schema: public; Owner: -; Tablespace:
3008
3009
  --
3009
3010
 
3010
- CREATE INDEX index_module_targets_on_module_detail_id ON module_targets USING btree (detail_id);
3011
+ CREATE INDEX index_module_targets_on_detail_id ON module_targets USING btree (detail_id);
3011
3012
 
3012
3013
 
3013
3014
  --
@@ -3374,8 +3375,12 @@ INSERT INTO schema_migrations (version) VALUES ('20150226151459');
3374
3375
 
3375
3376
  INSERT INTO schema_migrations (version) VALUES ('20150312155312');
3376
3377
 
3378
+ INSERT INTO schema_migrations (version) VALUES ('20150317145455');
3379
+
3377
3380
  INSERT INTO schema_migrations (version) VALUES ('20150326183742');
3378
3381
 
3382
+ INSERT INTO schema_migrations (version) VALUES ('20150421211719');
3383
+
3379
3384
  INSERT INTO schema_migrations (version) VALUES ('21');
3380
3385
 
3381
3386
  INSERT INTO schema_migrations (version) VALUES ('22');
@@ -3400,4 +3405,4 @@ INSERT INTO schema_migrations (version) VALUES ('7');
3400
3405
 
3401
3406
  INSERT INTO schema_migrations (version) VALUES ('8');
3402
3407
 
3403
- INSERT INTO schema_migrations (version) VALUES ('9');
3408
+ INSERT INTO schema_migrations (version) VALUES ('9');