Module: Sinatra::ActiveRecordTasks
- Extended by:
- ActiveRecordTasks
- Included in:
- ActiveRecordTasks
- Defined in:
- lib/sinatra/activerecord/rake.rb
Instance Method Summary collapse
- #create ⇒ Object
- #create_migration(migration_name, version = nil) ⇒ Object
- #db_dir ⇒ Object
- #db_dir=(dir) ⇒ Object
- #drop ⇒ Object
- #dump_schema(file_name = "#{db_dir}/schema.rb") ⇒ Object
- #dump_structure(file_name = "#{db_dir}/structure.sql") ⇒ Object
- #load_schema(file_name = "#{db_dir}/schema.rb") ⇒ Object
- #load_structure(file_name = "#{db_dir}/structure.sql") ⇒ Object
- #migrate(version = nil) ⇒ Object
- #purge ⇒ Object
- #rollback(step = nil) ⇒ Object
- #seed ⇒ Object
- #setup ⇒ Object
- #with_config_environment(environment, &block) ⇒ Object
Instance Method Details
#create ⇒ Object
9 10 11 12 13 |
# File 'lib/sinatra/activerecord/rake.rb', line 9 def create silence_activerecord do ActiveRecord::Tasks::DatabaseTasks.create(config) end end |
#create_migration(migration_name, version = nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sinatra/activerecord/rake.rb', line 35 def create_migration(migration_name, version = nil) raise "No NAME specified. Example usage: `rake db:create_migration NAME=create_users`" if migration_name.nil? migration_number = version || 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 FileUtils.mkdir_p(migrations_dir) File.open(migration_file, 'w') do |file| file.write <<-MIGRATION.strip_heredoc class #{migration_class} < ActiveRecord::Migration def change end end MIGRATION end end |
#db_dir ⇒ Object
111 112 113 |
# File 'lib/sinatra/activerecord/rake.rb', line 111 def db_dir ActiveRecord::Tasks::DatabaseTasks.db_dir ||= 'db' end |
#db_dir=(dir) ⇒ Object
115 116 117 |
# File 'lib/sinatra/activerecord/rake.rb', line 115 def db_dir=(dir) ActiveRecord::Tasks::DatabaseTasks.db_dir = dir end |
#drop ⇒ Object
15 16 17 18 19 |
# File 'lib/sinatra/activerecord/rake.rb', line 15 def drop silence_activerecord do ActiveRecord::Tasks::DatabaseTasks.drop(config) end end |
#dump_schema(file_name = "#{db_dir}/schema.rb") ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/sinatra/activerecord/rake.rb', line 67 def dump_schema(file_name = "#{db_dir}/schema.rb") silence_activerecord do ActiveRecord::Migration. do # Create file out = File.new(file_name, 'w') # Load schema ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, out) out.close end end end |
#dump_structure(file_name = "#{db_dir}/structure.sql") ⇒ Object
81 82 83 |
# File 'lib/sinatra/activerecord/rake.rb', line 81 def dump_structure(file_name = "#{db_dir}/structure.sql") ActiveRecord::Tasks::DatabaseTasks.structure_dump(config, file_name) end |
#load_schema(file_name = "#{db_dir}/schema.rb") ⇒ Object
93 94 95 |
# File 'lib/sinatra/activerecord/rake.rb', line 93 def load_schema(file_name = "#{db_dir}/schema.rb") load(file_name) end |
#load_structure(file_name = "#{db_dir}/structure.sql") ⇒ Object
97 98 99 |
# File 'lib/sinatra/activerecord/rake.rb', line 97 def load_structure(file_name = "#{db_dir}/structure.sql") ActiveRecord::Tasks::DatabaseTasks.structure_load(config, file_name) end |
#migrate(version = nil) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/sinatra/activerecord/rake.rb', line 53 def migrate(version = nil) silence_activerecord do migration_version = version ? version.to_i : version ActiveRecord::Migrator.migrate(migrations_dir, migration_version) end end |
#purge ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/sinatra/activerecord/rake.rb', line 85 def purge if config ActiveRecord::Tasks::DatabaseTasks.purge(config) else raise ActiveRecord::ConnectionNotEstablished end end |
#rollback(step = nil) ⇒ Object
60 61 62 63 64 65 |
# File 'lib/sinatra/activerecord/rake.rb', line 60 def rollback(step = nil) silence_activerecord do migration_step = step ? step.to_i : 1 ActiveRecord::Migrator.rollback(migrations_dir, migration_step) end end |
#seed ⇒ Object
21 22 23 24 25 |
# File 'lib/sinatra/activerecord/rake.rb', line 21 def seed silence_activerecord do load("#{db_dir}/seeds.rb") end end |
#setup ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/sinatra/activerecord/rake.rb', line 27 def setup silence_activerecord do create load_schema seed end end |
#with_config_environment(environment, &block) ⇒ Object
101 102 103 104 105 106 107 108 109 |
# File 'lib/sinatra/activerecord/rake.rb', line 101 def with_config_environment(environment, &block) previous_environment = config_environment begin config_environment(environment) yield ensure config_environment(previous_environment) end end |