mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-16 15:20:13 +01:00
25 lines
702 B
Ruby
25 lines
702 B
Ruby
|
|
class ConvertProjectToStateMachine < ActiveRecord::Migration
|
||
|
|
|
||
|
|
class Project < ActiveRecord::Base; end
|
||
|
|
|
||
|
|
def self.up
|
||
|
|
add_column :projects, :state, :string, :limit => 20, :default => "active", :null => false
|
||
|
|
@projects = Project.find(:all)
|
||
|
|
@projects.each do |project|
|
||
|
|
project.state = project.done? ? 'completed' : 'active'
|
||
|
|
project.save
|
||
|
|
end
|
||
|
|
remove_column :projects, :done
|
||
|
|
end
|
||
|
|
|
||
|
|
def self.down
|
||
|
|
add_column :projects, :done, :integer, :limit => 4, :default => 0, :null => false
|
||
|
|
@projects = Project.find(:all)
|
||
|
|
@projects.each do |project|
|
||
|
|
project.done = project.state == 'completed'
|
||
|
|
project.save
|
||
|
|
end
|
||
|
|
remove_column :projects, :state
|
||
|
|
end
|
||
|
|
end
|