drailties 0.4.3 → 0.5.0.pre
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 +6 -14
- data/bin/drails +4 -42
- data/lib/drails/app_drails_loader.rb +62 -0
- data/lib/drails/cli.rb +11 -0
- data/lib/drails/commands/application.rb +43 -0
- data/lib/drails/commands/destroy.rb +12 -0
- data/lib/drails/commands/domainserver.rb +6 -0
- data/lib/drails/commands/generate.rb +12 -0
- data/lib/drails/commands/projectionserver.rb +9 -0
- data/lib/drails/commands/server.rb +22 -0
- data/lib/drails/commands.rb +70 -0
- data/lib/drails/generators.rb +48 -0
- data/lib/drails/server/domain_server.rb +4 -1
- data/lib/drails/server/projection_servers.rb +5 -2
- data/lib/generators/drails/app/USAGE +12 -12
- data/lib/generators/drails/app/app_generator.rb +134 -52
- data/lib/generators/drails/app/templates/{event_source_controller.rb → app/controllers/event_source_controller.rb} +15 -15
- data/lib/generators/drails/app/templates/bin/drails +3 -0
- data/lib/generators/drails/app/templates/config/disco.yml +27 -0
- data/lib/generators/drails/app/templates/{build_validations_registry.rb → config/initializers/build_validations_registry.rb} +18 -18
- data/lib/generators/drails/app/templates/{create_domain.rb → config/initializers/create_domain.rb} +4 -4
- data/lib/generators/drails/app/templates/db/seeds.rb +14 -0
- data/lib/generators/drails/command/USAGE +11 -11
- data/lib/generators/drails/command/command_generator.rb +68 -40
- data/lib/generators/drails/command/templates/command.rb +24 -6
- data/lib/generators/drails/command/templates/event.rb +11 -10
- data/lib/generators/drails/command_processor/USAGE +1 -1
- data/lib/generators/drails/command_processor/command_processor_generator.rb +22 -15
- data/lib/generators/drails/command_processor/templates/command_processor.rb +5 -5
- data/lib/generators/drails/domain.rb +18 -18
- data/lib/generators/drails/event_name.rb +51 -51
- data/lib/generators/drails/migration/USAGE +41 -1
- data/lib/generators/drails/migration/migration_generator.rb +27 -28
- data/lib/generators/drails/migration/templates/create_table_migration.rb +19 -19
- data/lib/generators/drails/model/USAGE +17 -17
- data/lib/generators/drails/model/model_generator.rb +29 -23
- data/lib/generators/drails/model/templates/domain_model.rb +5 -5
- data/lib/generators/drails/model/templates/model.rb +4 -4
- data/lib/generators/drails/processor_name.rb +47 -47
- data/lib/generators/drails/projection/projection_generator.rb +3 -3
- data/lib/generators/drails/projection/templates/domain_projection.rb +9 -9
- data/lib/generators/drails/projection/templates/domain_projection_test.rb +6 -6
- data/lib/generators/drails/projection/templates/projection.rb +9 -9
- data/lib/generators/drails/projection/templates/projection_test.rb +6 -6
- data/lib/generators/drails/scaffold/USAGE +26 -26
- data/lib/generators/drails/scaffold/scaffold_generator.rb +91 -89
- data/lib/generators/drails/scaffold/templates/_eventstream.js.erb +15 -15
- data/lib/generators/drails/{controller → scaffold_controller}/USAGE +1 -1
- data/lib/generators/drails/{controller/controller_generator.rb → scaffold_controller/scaffold_controller_generator.rb} +27 -26
- data/lib/generators/drails/scaffold_controller/templates/controller.rb +68 -0
- data/lib/generators/drails/{controller → scaffold_controller}/templates/controller_test.rb +45 -45
- data/lib/generators/drails/use_domain_option.rb +53 -53
- data/lib/rails-disco/version.rb +3 -3
- data/lib/tasks/db.rake +187 -88
- metadata +33 -27
- data/lib/drails/application.rb +0 -8
- data/lib/drails/domainserver.rb +0 -5
- data/lib/drails/generate.rb +0 -21
- data/lib/drails/projectionserver.rb +0 -8
- data/lib/drails/server.rb +0 -18
- data/lib/generators/drails/app/templates/disco.yml +0 -54
- data/lib/generators/drails/controller/templates/controller.rb +0 -67
@@ -0,0 +1,68 @@
|
|
1
|
+
<% if namespaced? -%>
|
2
|
+
require_dependency '<%= namespaced_file_path %>/application_controller'
|
3
|
+
|
4
|
+
<% end -%>
|
5
|
+
<% module_namespacing do -%>
|
6
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
7
|
+
before_action :set_event_id, only: [:index, :show]
|
8
|
+
|
9
|
+
def index
|
10
|
+
@<%= plural_table_name %> = <%= orm_class.all(class_name) %>
|
11
|
+
end
|
12
|
+
|
13
|
+
def show
|
14
|
+
@<%= singular_table_name %> = <%= orm_class.find(class_name, 'params[:id]') %>
|
15
|
+
end
|
16
|
+
|
17
|
+
def new
|
18
|
+
@<%= singular_table_name %> = <%= command_class_name('create') %>Command.new
|
19
|
+
end
|
20
|
+
|
21
|
+
def edit
|
22
|
+
@<%= singular_table_name %> = <%= command_class_name('update') %>Command.new <%= orm_class.find(class_name, 'params[:id]') %>.attributes
|
23
|
+
end
|
24
|
+
|
25
|
+
def create
|
26
|
+
@<%= singular_table_name %> = <%= command_class_name('create') %>Command.new <%= singular_table_name %>_params
|
27
|
+
if @<%= singular_table_name %>.valid? && (session[:tmp_event_id] = Domain.run_command(@<%= singular_table_name %>))
|
28
|
+
redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully created.'" %>
|
29
|
+
else
|
30
|
+
render action: 'new'
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def update
|
35
|
+
@<%= singular_table_name %> = <%= command_class_name('update') %>Command.new <%= singular_table_name %>_params.merge(id: params[:id])
|
36
|
+
if @<%= singular_table_name %>.valid? && (session[:tmp_event_id] = Domain.run_command(@<%= singular_table_name %>))
|
37
|
+
redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully updated.'" %>
|
38
|
+
else
|
39
|
+
render action: 'edit'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def destroy
|
44
|
+
delete_<%= singular_table_name %> = <%= command_class_name('delete') %>Command.new(id: params[:id])
|
45
|
+
session[:tmp_event_id] = event_id = Domain.run_command(delete_<%= singular_table_name %>)
|
46
|
+
if event_id
|
47
|
+
redirect_to <%= index_helper %>_url, notice: <%= "'#{human_name} was successfully destroyed.'" %>
|
48
|
+
else
|
49
|
+
redirect_to <%= singular_table_name %>_url(id: params[:id]), error: <%= "'#{human_name} could not be deleted.'" %>
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def <%= "#{singular_table_name}_params" %>
|
56
|
+
<%- if attributes_names.empty? -%>
|
57
|
+
params[<%= ":#{singular_table_name}" %>]
|
58
|
+
<%- else -%>
|
59
|
+
params.require(<%= ":#{singular_table_name}" %>).permit(<%= attributes_names.map { |name| ":#{name}" }.join(', ') %>)
|
60
|
+
<%- end -%>
|
61
|
+
end
|
62
|
+
|
63
|
+
def set_event_id
|
64
|
+
@event_id = session[:tmp_event_id]
|
65
|
+
session[:tmp_event_id] = nil
|
66
|
+
end
|
67
|
+
end
|
68
|
+
<% end -%>
|
@@ -1,45 +1,45 @@
|
|
1
|
-
require 'test_helper'
|
2
|
-
|
3
|
-
<% module_namespacing do -%>
|
4
|
-
class <%= controller_class_name %>ControllerTest < ActionController::TestCase
|
5
|
-
setup do
|
6
|
-
@<%= singular_table_name %> = <%= table_name %>(:one)
|
7
|
-
end
|
8
|
-
|
9
|
-
test "should get index" do
|
10
|
-
get :index
|
11
|
-
assert_response :success
|
12
|
-
assert_not_nil assigns(:<%= table_name %>)
|
13
|
-
end
|
14
|
-
|
15
|
-
test "should get new" do
|
16
|
-
get :new
|
17
|
-
assert_response :success
|
18
|
-
end
|
19
|
-
|
20
|
-
#test "should create <%= singular_table_name %>" do
|
21
|
-
# #removed for now, because there is no reason to test the post here, cause the projection creates it
|
22
|
-
# #maybe we could test something else here instead
|
23
|
-
#end
|
24
|
-
|
25
|
-
test "should show <%= singular_table_name %>" do
|
26
|
-
get :show, id: <%= "@#{singular_table_name}" %>
|
27
|
-
assert_response :success
|
28
|
-
end
|
29
|
-
|
30
|
-
test "should get edit" do
|
31
|
-
get :edit, id: <%= "@#{singular_table_name}" %>
|
32
|
-
assert_response :success
|
33
|
-
end
|
34
|
-
|
35
|
-
#test "should update <%= singular_table_name %>" do
|
36
|
-
# #removed for now, because there is no reason to test the update here, cause the projection updates it
|
37
|
-
# #maybe we could test something else here instead
|
38
|
-
#end
|
39
|
-
|
40
|
-
#test "should destroy <%= singular_table_name %>" do
|
41
|
-
# #removed for now, because there is no reason to test the destroy here, cause the projection destroys it
|
42
|
-
# #maybe we could test something else here instead
|
43
|
-
#end
|
44
|
-
end
|
45
|
-
<% end -%>
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
<% module_namespacing do -%>
|
4
|
+
class <%= controller_class_name %>ControllerTest < ActionController::TestCase
|
5
|
+
setup do
|
6
|
+
@<%= singular_table_name %> = <%= table_name %>(:one)
|
7
|
+
end
|
8
|
+
|
9
|
+
test "should get index" do
|
10
|
+
get :index
|
11
|
+
assert_response :success
|
12
|
+
assert_not_nil assigns(:<%= table_name %>)
|
13
|
+
end
|
14
|
+
|
15
|
+
test "should get new" do
|
16
|
+
get :new
|
17
|
+
assert_response :success
|
18
|
+
end
|
19
|
+
|
20
|
+
#test "should create <%= singular_table_name %>" do
|
21
|
+
# #removed for now, because there is no reason to test the post here, cause the projection creates it
|
22
|
+
# #maybe we could test something else here instead
|
23
|
+
#end
|
24
|
+
|
25
|
+
test "should show <%= singular_table_name %>" do
|
26
|
+
get :show, id: <%= "@#{singular_table_name}" %>
|
27
|
+
assert_response :success
|
28
|
+
end
|
29
|
+
|
30
|
+
test "should get edit" do
|
31
|
+
get :edit, id: <%= "@#{singular_table_name}" %>
|
32
|
+
assert_response :success
|
33
|
+
end
|
34
|
+
|
35
|
+
#test "should update <%= singular_table_name %>" do
|
36
|
+
# #removed for now, because there is no reason to test the update here, cause the projection updates it
|
37
|
+
# #maybe we could test something else here instead
|
38
|
+
#end
|
39
|
+
|
40
|
+
#test "should destroy <%= singular_table_name %>" do
|
41
|
+
# #removed for now, because there is no reason to test the destroy here, cause the projection destroys it
|
42
|
+
# #maybe we could test something else here instead
|
43
|
+
#end
|
44
|
+
end
|
45
|
+
<% end -%>
|
@@ -1,54 +1,54 @@
|
|
1
|
-
require 'active_support/concern'
|
2
|
-
require 'generators/drails/domain.rb'
|
3
|
-
|
4
|
-
module Drails
|
5
|
-
module Generators
|
6
|
-
module UseDomainOption
|
7
|
-
extend ActiveSupport::Concern
|
8
|
-
|
9
|
-
include Domain
|
10
|
-
|
11
|
-
included do
|
12
|
-
class_option :domain, type: :boolean, default: false, desc: "generate for the domain"
|
13
|
-
end
|
14
|
-
|
15
|
-
protected
|
16
|
-
|
17
|
-
def use_domain?
|
18
|
-
options[:domain]
|
19
|
-
end
|
20
|
-
|
21
|
-
def use_domain(file_name)
|
22
|
-
if use_domain?
|
23
|
-
"domain_#{file_name}"
|
24
|
-
else
|
25
|
-
file_name
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
def use_domain_class_path
|
30
|
-
if use_domain?
|
31
|
-
domain_class_path
|
32
|
-
else
|
33
|
-
class_path
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
def use_domain_base_path
|
38
|
-
if use_domain?
|
39
|
-
'domain'
|
40
|
-
else
|
41
|
-
'app'
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def use_domain_class_file_path(type, file_name)
|
46
|
-
File.join use_domain_base_path, type, use_domain_class_path, file_name
|
47
|
-
end
|
48
|
-
|
49
|
-
def use_domain_param
|
50
|
-
'--domain' if use_domain?
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
1
|
+
require 'active_support/concern'
|
2
|
+
require 'generators/drails/domain.rb'
|
3
|
+
|
4
|
+
module Drails
|
5
|
+
module Generators
|
6
|
+
module UseDomainOption
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
include Domain
|
10
|
+
|
11
|
+
included do
|
12
|
+
class_option :domain, type: :boolean, default: false, desc: "generate for the domain"
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
def use_domain?
|
18
|
+
options[:domain]
|
19
|
+
end
|
20
|
+
|
21
|
+
def use_domain(file_name)
|
22
|
+
if use_domain?
|
23
|
+
"domain_#{file_name}"
|
24
|
+
else
|
25
|
+
file_name
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def use_domain_class_path
|
30
|
+
if use_domain?
|
31
|
+
domain_class_path
|
32
|
+
else
|
33
|
+
class_path
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def use_domain_base_path
|
38
|
+
if use_domain?
|
39
|
+
'domain'
|
40
|
+
else
|
41
|
+
'app'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def use_domain_class_file_path(type, file_name)
|
46
|
+
File.join use_domain_base_path, type, use_domain_class_path, file_name
|
47
|
+
end
|
48
|
+
|
49
|
+
def use_domain_param
|
50
|
+
'--domain' if use_domain?
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
54
|
end
|
data/lib/rails-disco/version.rb
CHANGED
data/lib/tasks/db.rake
CHANGED
@@ -1,123 +1,222 @@
|
|
1
1
|
require 'yaml'
|
2
|
-
require 'logger'
|
3
2
|
require 'active_record'
|
4
3
|
|
5
|
-
namespace :
|
4
|
+
namespace :disco do
|
6
5
|
namespace :db do
|
7
|
-
def
|
8
|
-
|
6
|
+
def disco_database_configuration(disco_config, database)
|
7
|
+
disco_config.reduce({}) do |map, (key, value)|
|
8
|
+
if value.is_a?(Hash) && value.has_key?(database)
|
9
|
+
map[key] = value[database]
|
10
|
+
end
|
11
|
+
map
|
12
|
+
end
|
13
|
+
end
|
9
14
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
15
|
+
task :load_config => :environment do
|
16
|
+
migrate_path = 'db/migrate'
|
17
|
+
ActiveRecord::Tasks::DatabaseTasks.db_dir = Rails.application.config.paths['db'].first
|
18
|
+
ActiveRecord::Tasks::DatabaseTasks.seed_loader = Rails.application
|
19
|
+
ActiveRecord::Base.clear_all_connections!
|
20
|
+
|
21
|
+
if ENV['SYSTEM'] == 'domain'
|
22
|
+
migrate_path = 'db/migrate_domain'
|
23
|
+
ActiveRecord::Tasks::DatabaseTasks.env = ENV['DOMAIN_ENV'] || Rails.env
|
24
|
+
disco_config = YAML.load_file(File.join Rails.root, 'config', 'disco.yml')
|
25
|
+
ActiveRecord::Tasks::DatabaseTasks.database_configuration = disco_database_configuration(disco_config, 'domain_database')
|
26
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths =
|
27
|
+
Array(ENV['DOMAIN_MIGRATIONS_DIR'] || Rails.application.paths[migrate_path] || File.join(Rails.root, migrate_path))
|
28
|
+
ActiveRecord::Tasks::DatabaseTasks.fixtures_path = File.join Rails.root, 'test', 'fixtures_domain'
|
29
|
+
ENV['SCHEMA'] = File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'schema_domain.rb')
|
30
|
+
ENV['DB_STRUCTURE'] || File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'structure_domain.sql')
|
31
|
+
|
32
|
+
else # 'projection' - normal rails
|
33
|
+
ActiveRecord::Tasks::DatabaseTasks.env = ENV['PROJECTION_ENV'] || Rails.env
|
34
|
+
ActiveRecord::Tasks::DatabaseTasks.database_configuration = Rails.application.config.database_configuration
|
35
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = Array(Rails.application.paths[migrate_path])
|
36
|
+
ActiveRecord::Tasks::DatabaseTasks.fixtures_path = File.join Rails.root, 'test', 'fixtures'
|
37
|
+
ENV['SCHEMA'] = File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'schema.rb')
|
38
|
+
ENV['DB_STRUCTURE'] = File.join(ActiveRecord::Tasks::DatabaseTasks.db_dir, 'structure.sql')
|
14
39
|
end
|
15
40
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
root_password = $stdin.gets.strip
|
22
|
-
|
23
|
-
grant_statement = <<-SQL
|
24
|
-
GRANT ALL PRIVILEGES ON #{config['database']}.*
|
25
|
-
TO '#{config['username']}'@'localhost'
|
26
|
-
IDENTIFIED BY '#{config['password']}' WITH GRANT OPTION;
|
27
|
-
SQL
|
28
|
-
|
29
|
-
create_db.call config.merge('database' => nil, 'username' => 'root', 'password' => root_password)
|
30
|
-
else
|
31
|
-
$stderr.puts sqlerr.error
|
32
|
-
$stderr.puts "Couldn't create database for #{config.inspect}, charset: utf8, collation: utf8_unicode_ci"
|
33
|
-
$stderr.puts "(if you set the charset manually, make sure you have a matching collation)" if config['charset']
|
41
|
+
if defined?(ENGINE_PATH) && (engine = Rails::Engine.find(ENGINE_PATH))
|
42
|
+
if engine.paths[migrate_path].existent
|
43
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths += Array(engine.paths[migrate_path])
|
44
|
+
elsif Dir.exists?(File.join engine.root, migrate_path)
|
45
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths << File.join(engine.root, migrate_path)
|
34
46
|
end
|
35
47
|
end
|
48
|
+
Rails.env = ActiveRecord::Tasks::DatabaseTasks.env
|
49
|
+
ActiveRecord::Tasks::DatabaseTasks.root = Rails.root if ActiveRecord::Tasks::DatabaseTasks.respond_to? :root
|
50
|
+
|
51
|
+
#puts "env = #{ActiveRecord::Tasks::DatabaseTasks.env}"
|
52
|
+
puts "system = #{ENV['SYSTEM']}"
|
53
|
+
#puts "config = #{ActiveRecord::Tasks::DatabaseTasks.database_configuration[ActiveRecord::Tasks::DatabaseTasks.env]}"
|
36
54
|
end
|
37
55
|
|
38
|
-
|
39
|
-
|
56
|
+
def connect
|
57
|
+
ActiveRecord::Base.establish_connection ActiveRecord::Tasks::DatabaseTasks.env
|
40
58
|
end
|
41
59
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
60
|
+
namespace :migrate do
|
61
|
+
desc 'Copys the migrations files from the gems directories (options: SYSTEM=(projection|domain))'
|
62
|
+
task :copy => :load_config do
|
63
|
+
target_path = ActiveRecord::Tasks::DatabaseTasks.migrations_paths.first
|
64
|
+
gems = %w(active_event active_domain)
|
65
|
+
gems = %w(active_projection) if ENV['SYSTEM'] != 'domain'
|
66
|
+
gems.each do |gem|
|
67
|
+
gem_spec = Gem::Specification.find_by_name(gem)
|
68
|
+
if gem.nil?
|
69
|
+
puts "missing gem #{gem}!"
|
70
|
+
elsif Dir.exists?(File.join gem_spec.gem_dir, 'db/migrate')
|
71
|
+
cp_r (File.join gem_spec.gem_dir, 'db/migrate/.'), target_path
|
72
|
+
else
|
73
|
+
puts "missing db/migrate in gem #{gem}!"
|
74
|
+
end
|
75
|
+
end
|
49
76
|
end
|
50
|
-
end
|
51
77
|
|
52
|
-
|
53
|
-
|
54
|
-
|
78
|
+
desc 'Copy and run migrations (options: SYSTEM=(projection|domain))'
|
79
|
+
task :setup do
|
80
|
+
Rake::Task[:'disco:db:migrate:copy'].invoke
|
81
|
+
Rake::Task[:'disco:db:create'].invoke
|
82
|
+
Rake::Task[:'disco:db:migrate'].invoke
|
83
|
+
end
|
55
84
|
|
56
|
-
|
57
|
-
|
58
|
-
|
85
|
+
# make sure the right database is connected
|
86
|
+
task :down do connect end
|
87
|
+
task :up do connect end
|
88
|
+
task :status do connect end
|
59
89
|
end
|
60
90
|
|
61
|
-
|
62
|
-
task :create => :configure_connection do
|
63
|
-
create_database @config
|
64
|
-
end
|
91
|
+
task :migrate do connect end
|
65
92
|
|
66
|
-
|
67
|
-
|
68
|
-
ActiveRecord::Base.connection.drop_database @config['database']
|
93
|
+
namespace :schema do
|
94
|
+
task :load do connect end
|
69
95
|
end
|
96
|
+
namespace :structure do
|
97
|
+
task :load do connect end
|
98
|
+
end
|
99
|
+
end
|
70
100
|
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
101
|
+
load 'active_record/railties/databases.rake'
|
102
|
+
|
103
|
+
namespace :domain do
|
104
|
+
task :environment do
|
105
|
+
ENV['SYSTEM'] = 'domain'
|
75
106
|
end
|
76
107
|
|
77
|
-
|
78
|
-
|
79
|
-
puts "Current version: #{ActiveRecord::Migrator.current_version}"
|
108
|
+
namespace :create do
|
109
|
+
task :all => [:environment, :'disco:db:create:all']
|
80
110
|
end
|
81
111
|
|
82
|
-
desc '
|
83
|
-
task :
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
else
|
88
|
-
cp_r Gem::Specification.find_by_name('active_projection').gem_dir + '/db/migrate/.', @migration_dir
|
89
|
-
end
|
112
|
+
desc 'Create the database from config/disco.yml (use create:all to create all dbs in the config)'
|
113
|
+
task :create => [:environment, :'disco:db:create']
|
114
|
+
|
115
|
+
namespace :drop do
|
116
|
+
task :all => [:environment, :'disco:db:drop:all']
|
90
117
|
end
|
91
118
|
|
92
|
-
desc '
|
93
|
-
task :
|
94
|
-
|
95
|
-
|
119
|
+
desc 'Drops the database using config/disco.yml (use drop:all to drop all databases)'
|
120
|
+
task :drop => [:environment, :'disco:db:drop']
|
121
|
+
|
122
|
+
desc 'run domain migrations'
|
123
|
+
task :migrate => [:environment, :'disco:db:migrate']
|
124
|
+
|
125
|
+
namespace :migrate do
|
126
|
+
desc 'Display status of migrations'
|
127
|
+
task :status => [:environment, :'disco:db:migrate:status']
|
128
|
+
|
129
|
+
desc 'Copy migrations from rails disco'
|
130
|
+
task :copy => [:environment, :'disco:db:migrate:copy']
|
131
|
+
|
132
|
+
desc 'Copy and run migrations from rails disco'
|
133
|
+
task :setup => [:environment, :'disco:db:migrate:setup']
|
134
|
+
|
135
|
+
desc 'drop and create, copy and run migrations from rails disco'
|
136
|
+
task :reset => [:environment, :'disco:db:migrate:reset']
|
96
137
|
end
|
97
138
|
|
98
|
-
desc '
|
99
|
-
task :
|
100
|
-
|
101
|
-
|
102
|
-
|
139
|
+
desc 'create and load schema and seeds for domain database'
|
140
|
+
task :setup => [:environment, :'disco:db:setup']
|
141
|
+
end
|
142
|
+
|
143
|
+
def reenable
|
144
|
+
Rake::Task.tasks.map &:reenable
|
145
|
+
end
|
146
|
+
|
147
|
+
desc 'creates the domain and projection databases for the current environment'
|
148
|
+
task :create do
|
149
|
+
ENV['SYSTEM'] = 'projection'
|
150
|
+
Rake::Task[:'disco:db:create'].invoke
|
151
|
+
|
152
|
+
reenable
|
153
|
+
Rake::Task[:'disco:domain:create'].invoke
|
154
|
+
end
|
155
|
+
|
156
|
+
desc 'drops the domain and projection databases for the current environment'
|
157
|
+
task :drop do
|
158
|
+
ENV['SYSTEM'] = 'projection'
|
159
|
+
Rake::Task[:'disco:db:drop'].invoke
|
160
|
+
|
161
|
+
reenable
|
162
|
+
Rake::Task[:'disco:domain:drop'].invoke
|
163
|
+
end
|
164
|
+
|
165
|
+
desc 'migrates the domain and projection databases for the current environment'
|
166
|
+
task :migrate do
|
167
|
+
ENV['SYSTEM'] = 'projection'
|
168
|
+
Rake::Task[:'disco:db:migrate'].invoke
|
169
|
+
|
170
|
+
reenable
|
171
|
+
Rake::Task[:'disco:domain:migrate'].invoke
|
172
|
+
end
|
173
|
+
|
174
|
+
desc 'Create and load schema and seeds for domain and projection databases'
|
175
|
+
task :setup do
|
176
|
+
ENV['SYSTEM'] = 'projection'
|
177
|
+
Rake::Task[:'disco:db:setup'].invoke
|
178
|
+
|
179
|
+
reenable
|
180
|
+
Rake::Task[:'disco:domain:setup'].invoke
|
181
|
+
end
|
182
|
+
|
183
|
+
desc 'Drop, recreate and load schema and seeds for domain and projection databases'
|
184
|
+
task :reset do
|
185
|
+
ENV['SYSTEM'] = 'projection'
|
186
|
+
Rake::Task[:'disco:db:drop'].invoke
|
187
|
+
Rake::Task[:'disco:db:setup'].invoke
|
188
|
+
|
189
|
+
reenable
|
190
|
+
Rake::Task[:'disco:domain:drop'].invoke
|
191
|
+
Rake::Task[:'disco:domain:setup'].invoke
|
192
|
+
end
|
193
|
+
|
194
|
+
namespace :migrate do
|
195
|
+
desc 'copies, creates and runs all migrations for domain and projection databases for the current environment'
|
196
|
+
task :setup do
|
197
|
+
ENV['SYSTEM'] = 'projection'
|
198
|
+
Rake::Task[:'disco:db:migrate:setup'].invoke
|
199
|
+
|
200
|
+
reenable
|
201
|
+
Rake::Task[:'disco:domain:migrate:setup'].invoke
|
103
202
|
end
|
104
203
|
|
105
|
-
desc '
|
106
|
-
task :
|
107
|
-
ENV['
|
108
|
-
Rake::Task[:'
|
109
|
-
|
204
|
+
desc 'Resets your domain and projection databases using your migrations for the current environment'
|
205
|
+
task :reset do
|
206
|
+
ENV['SYSTEM'] = 'projection'
|
207
|
+
Rake::Task[:'disco:db:migrate:reset'].invoke
|
208
|
+
|
209
|
+
reenable
|
210
|
+
Rake::Task[:'disco:domain:migrate:reset'].invoke
|
110
211
|
end
|
111
212
|
|
112
|
-
desc '
|
113
|
-
task :
|
114
|
-
|
115
|
-
Rake::Task[:'
|
116
|
-
|
117
|
-
|
118
|
-
Rake::Task[:'
|
119
|
-
Rake::Task[:'drails:db:copy_migrations'].reenable
|
120
|
-
Rake::Task[:'drails:db:setup_projection'].invoke
|
213
|
+
desc 'Display status of domain and projection migrations'
|
214
|
+
task :status do
|
215
|
+
ENV['SYSTEM'] = 'projection'
|
216
|
+
Rake::Task[:'disco:db:migrate:status'].invoke
|
217
|
+
|
218
|
+
reenable
|
219
|
+
Rake::Task[:'disco:domain:migrate:status'].invoke
|
121
220
|
end
|
122
221
|
end
|
123
|
-
end
|
222
|
+
end
|