Module: Skr::Core::DB
- Extended by:
- DB
- Included in:
- DB
- Defined in:
- lib/skr/core/db.rb,
lib/skr/core/db/seed.rb,
lib/skr/core/db/migrations.rb,
lib/skr/core/db/migration_helpers.rb
Defined Under Namespace
Modules: CommandRecorder, MigrationMethods, Migrations, TableFields
Classes: Seed
Instance Attribute Summary collapse
Instance Method Summary
collapse
Instance Attribute Details
#config_file ⇒ Object
Returns the value of attribute config_file.
8
9
10
|
# File 'lib/skr/core/db.rb', line 8
def config_file
@config_file
end
|
Instance Method Details
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/skr/core/db.rb', line 25
def configure_rake_environment
ActiveRecord::Tasks::DatabaseTasks.seed_loader = Skr::Core::DB
env = ENV['RAILS_ENV'] || 'development'
Skr::Core::DB.config_file ||= 'config/database.yml'
ENV['SCHEMA'] ||= 'db/schema.sql'
ENV['DB_STRUCTURE'] ||= 'db/schema.sql'
ActiveRecord::Base.schema_format = :sql
Skr::Core::DB.establish_connection( env )
ActiveRecord::Tasks::DatabaseTasks.database_configuration = ActiveRecord::Base.configurations
ActiveRecord::Tasks::DatabaseTasks.env = 'test'
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = 'db/migrate'
ActiveRecord::Tasks::DatabaseTasks.current_config( :config => ActiveRecord::Base.configurations[ env ] )
end
|
#connect(configuration) ⇒ Object
17
18
19
|
# File 'lib/skr/core/db.rb', line 17
def connect( configuration )
::ActiveRecord::Base.establish_connection( configuration )
end
|
#create_migration(migration_name) ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/skr/core/db.rb', line 39
def create_migration( migration_name )
STDERR.puts "Migration #{migration_name} already exists!" and return false if migration_exists?( migration_name )
migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S")
migration_file = File.join(migrations_dir, "#{migration_number}_#{migration_name}.rb")
migration_class = migration_name.split("_").map(&:capitalize).join
File.open(migration_file, 'w') do |file|
file.write <<-MIGRATION.strip_heredoc
class #{migration_class} < ActiveRecord::Migration
def change
end
end
MIGRATION
end
end
|
#establish_connection(env = ENV['RAILS_ENV'] || 'development') ⇒ Object
10
11
12
13
14
15
|
# File 'lib/skr/core/db.rb', line 10
def establish_connection( env = ENV['RAILS_ENV'] || 'development')
file = config_file || 'config/database.yml'
config = YAML::load( IO.read( file ) )
::ActiveRecord::Base.configurations = config
self.connect( ::ActiveRecord::Base.configurations[ env ] )
end
|
#migrate(version = nil) ⇒ Object
54
55
56
57
58
59
|
# File 'lib/skr/core/db.rb', line 54
def migrate(version = nil)
silence_activerecord do
migration_version = version ? version.to_i : version
::ActiveRecord::Migrator.migrate( migrations_dir, migration_version )
end
end
|
#migration_exists?(file_name) ⇒ Boolean
21
22
23
|
# File 'lib/skr/core/db.rb', line 21
def migration_exists?( file_name ) Dir.glob("#{migrations_dir}/[0-9]*_*.rb").grep(/\d+_#{file_name}.rb$/).first
end
|
#rollback(step = nil) ⇒ Object
61
62
63
64
65
66
|
# File 'lib/skr/core/db.rb', line 61
def rollback(step = nil)
silence_activerecord do
migration_step = step ? step.to_i : 1
::ActiveRecord::Migrator.rollback(migrations_dir, migration_step)
end
end
|