Sha256: 65200c307333a758bcdefbe72a56117b8a5553de3396f49a812ed6c5b2eea8a6
Contents?: true
Size: 1.75 KB
Versions: 117
Compression:
Stored size: 1.75 KB
Contents
class AddUserOption < ActiveRecord::Migration def self.up add_column :backlogs, :enable_users, :boolean add_column :estimates, :user_id, :integer, :references => :users add_column :works, :user_id, :integer, :references => :users change_column_null :works, :completed_at, :timestamp, true started_tasks = Task.find(:all, :conditions => 'work_started_at IS NOT NULL') started_tasks.each do |task| started_work = Work.new(:task_id => task.id, :started_at => task.work_started_at) started_work.save! end remove_column :tasks, :work_started_at end def self.down add_column :tasks, :work_started_at, :datetime started_works = Work.find(:all, :conditions => 'completed_at IS NULL') started_works.each do |work| task = Task.find(work.task_id) task.work_started_at = work.started_at task.save! work.destroy end change_column_null :works, :completed_at, :timestamp, false remove_column :works, :user_id remove_column :estimates, :user_id remove_column :backlogs, :enable_users end def self.change_column_null(table_name, column_name, column_type, null, default = nil) #:nodoc: unless null || default.nil? execute("UPDATE #{table_name} SET #{column_name}=#{quote(default)} WHERE #{column_name} IS NULL") end if ActiveRecord::Base.connection.adapter_name.downcase == "postgresql" execute("ALTER TABLE #{table_name} ALTER #{column_name} #{null ? 'DROP' : 'SET'} NOT NULL") elsif ActiveRecord::Base.connection.adapter_name.downcase == "mysql" execute("ALTER TABLE #{table_name} MODIFY COLUMN #{column_name} #{column_type} #{null ? 'NULL' : 'NOT NULL'}") end end end class Task < ActiveRecord::Base end class Work < ActiveRecord::Base end
Version data entries
117 entries across 117 versions & 1 rubygems