3scale/porta

View on GitHub
db/migrate/20101110163112_billing_mode_to_account.rb

Summary

Maintainability
A
0 mins
Test Coverage
class BillingModeToAccount < ActiveRecord::Migration
  def self.up
    add_column :accounts, :billing_strategy, :string

    Account.reset_column_information
    Settings.reset_column_information

    Account.find_each(:include => :settings, :conditions => 'settings.billing_mode IS NOT NULL') do |account|
      putc '.'
      old = account.settings.billing_mode

      if old
        puts "Updating #{account.inspect}"
        account.create_billing_strategy(:prepaid => (old == 'prepaid'),
                                        :charging_enabled  => (old != 'informational'))
      else
        puts "Skipping #{account.inspect}"
      end
    end
  end

  def self.down
    remove_column :accounts, :billing_strategy
  end
end