Sha256: 2bfe7e9066a8c76c6f225d4021ef02a26205c09cffaca744bed2c936c35bfe4a
Contents?: true
Size: 1.93 KB
Versions: 2
Compression:
Stored size: 1.93 KB
Contents
module ActiveWrapper class Db attr_reader :base, :env def initialize(options) @base = options[:base] @env = options[:env] end def establish_connection unless ActiveRecord::Base.connected? config = YAML::load(File.open("#{base}/config/database.yml")) ActiveRecord::Base.configurations = config ActiveRecord::Base.establish_connection(env) end end def migrate(version=nil) ActiveRecord::Migrator.migrate("#{base}/db/migrate", version) end def migrate_reset db_migrate(0) db_migrate end def generate_migration(name=nil) raise "Please specify desired migration name with NAME=my_migration_name" unless name migration_name = name.strip.chomp migrations_path = "#{base}/db/migrate" migrations_template = File.expand_path("#{File.dirname(__FILE__)}/../../resources/migration.template") # Find the highest existing migration version or set to 1 if (existing_migrations = Dir[File.join(migrations_path, '*.rb')]).length > 0 version = File.basename(existing_migrations.sort.reverse.first)[/^(\d+)_/,1].to_i + 1 else version = 1 end # Read the contents of the migration template into string migrations_template = File.read(migrations_template) # Replace the migration name in template with the acutal one migration_content = migrations_template.gsub('__migration_name__', migration_name.camelize) migration_content = migration_content.gsub('__migration_table__', migration_name) # Generate migration filename migration_filename = "#{"%03d" % version}_#{migration_name}.rb" # Write the migration File.open(File.join(migrations_path, migration_filename), "w+") do |migration| migration.puts migration_content end # Done! puts "Successfully created migration #{migration_filename}" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
winton-active_wrapper-0.1.0 | lib/active_wrapper/db.rb |
winton-active_wrapper-0.1.1 | lib/active_wrapper/db.rb |