Sha256: 33b84eacedcca61d657f4bfd4adbdedca114db0a4695087b98bce5bf24ddaedd
Contents?: true
Size: 1.35 KB
Versions: 2
Compression:
Stored size: 1.35 KB
Contents
require 'orange-core/middleware/base' require 'dm-core' require 'dm-migrations' module Orange::Middleware class Database < Base def init(opts = {}) opts = opts.with_defaults(:migration_url => (orange.options[:development_mode] ? '/__ORANGE_DB__/migrate' : false), :no_auto_upgrade => false) orange.mixin Orange::Mixins::DBLoader @options = opts end def stack_init unless orange.options.has_key?('database') && orange.options['database'] == false db = ENV["DATABASE_URL"] || orange.options['database'] || "sqlite3://#{orange.app_dir('dev_db.sqlite')}" orange.options['database'] = db orange.load_db!(db) orange.upgrade_db! unless @options[:no_auto_upgrade] || orange.options['db_no_auto_upgrade'] end end def packet_call(packet) packet["database.url"] = orange.options["database"] path = packet['route.path'] || packet.request.path_info if @options[:migration_url] && @options[:migration_url] == path orange.migrate_db! after = packet.flash('redirect_to') || '/' packet.reroute(after) end pass packet end end end module Orange::Mixins::DBLoader def load_db!(url) DataMapper.setup(:default, url) end def migrate_db! DataMapper.auto_migrate! end def upgrade_db! DataMapper.auto_upgrade! end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
orange-core-0.7.1 | lib/orange-core/middleware/database.rb |
orange-core-0.7.0 | lib/orange-core/middleware/database.rb |