Make database offline mode work
authorTom Hughes <tom@compton.nu>
Sun, 2 Oct 2011 16:08:23 +0000 (17:08 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 14 Nov 2011 09:42:56 +0000 (09:42 +0000)
app/controllers/application_controller.rb
config/application.rb

index 2d137cc..ec2f381 100644 (file)
@@ -3,7 +3,12 @@ class ApplicationController < ActionController::Base
   protect_from_forgery
 
   if STATUS == :database_readonly or STATUS == :database_offline
-    session :off
+    after_filter :clear_session
+    wrap_parameters false
+
+    def clear_session
+      session.clear
+    end
 
     def self.cache_sweeper(*sweepers)
     end
index d257696..0713451 100644 (file)
@@ -2,7 +2,15 @@ require File.expand_path('../boot', __FILE__)
 
 require File.expand_path('../preinitializer', __FILE__)
 
+if STATUS == :database_offline
+require "action_controller/railtie"
+require "action_mailer/railtie"
+require "active_resource/railtie"
+require "sprockets/railtie"
+require "rails/test_unit/railtie"
+else
 require 'rails/all'
+end
 
 if defined?(Bundler)
   # If you precompile assets before deploying to production, use this line
@@ -25,7 +33,9 @@ module OpenStreetMap
     # config.plugins = [ :exception_notification, :ssl_requirement, :all ]
 
     # Activate observers that should always be running.
-    config.active_record.observers = :spam_observer
+    unless STATUS == :database_offline
+      config.active_record.observers = :spam_observer
+    end
 
     # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
     # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
@@ -50,6 +60,8 @@ module OpenStreetMap
     # Use SQL instead of Active Record's schema dumper when creating the test database.
     # This is necessary if your schema can't be completely dumped by the schema dumper,
     # like if you have constraints or database-specific column types
-    config.active_record.schema_format = :sql
+    unless STATUS == :database_offline
+      config.active_record.schema_format = :sql
+    end
   end
 end