Chris@16
|
1 class ConsolidateRepositoryOptions < ActiveRecord::Migration
|
Chris@16
|
2 class Repository < ActiveRecord::Base
|
Chris@16
|
3 def self.inheritance_column
|
Chris@16
|
4 # disable single table inheritance
|
Chris@16
|
5 nil
|
Chris@16
|
6 end
|
Chris@16
|
7
|
Chris@16
|
8 serialize :checkout_settings, Hash
|
Chris@16
|
9 end
|
Chris@16
|
10
|
Chris@16
|
11 def self.up
|
Chris@16
|
12 add_column :repositories, :checkout_settings, :text
|
Chris@16
|
13
|
Chris@16
|
14 Repository.all.each do |r|
|
Chris@16
|
15 r.checkout_settings = {
|
Chris@16
|
16 "checkout_url_type" => r.checkout_url_type,
|
Chris@16
|
17 "checkout_url" => r.checkout_url,
|
Chris@16
|
18 "display_login" => r.display_login,
|
Chris@16
|
19 "render_type" => r.render_type,
|
Chris@16
|
20 "checkout_url_overwrite" => r.checkout_url_overwrite
|
Chris@16
|
21 }
|
Chris@16
|
22 r.save!
|
Chris@16
|
23 end
|
Chris@16
|
24 remove_column :repositories, :checkout_url_type
|
Chris@16
|
25 remove_column :repositories, :checkout_url
|
Chris@16
|
26 remove_column :repositories, :display_login
|
Chris@16
|
27 remove_column :repositories, :render_type
|
Chris@16
|
28 remove_column :repositories, :checkout_url_overwrite
|
Chris@16
|
29 end
|
Chris@16
|
30
|
Chris@16
|
31 def self.down
|
Chris@16
|
32 add_column :repositories, :checkout_url_type, :string, :default => nil, :null => true
|
Chris@16
|
33 add_column :repositories, :checkout_url, :string, :default => nil, :null => true
|
Chris@16
|
34 add_column :repositories, :display_login, :string, :default => nil, :null => true
|
Chris@16
|
35 add_column :repositories, :render_type, :string, :default => 'url', :null => false
|
Chris@16
|
36 add_column :repositories, :checkout_url_overwrite, :boolean, :default => false, :null => false
|
Chris@16
|
37
|
Chris@16
|
38 Repository.all.each do |r|
|
Chris@16
|
39 r.checkout_url_type = r.checkout_settings["checkout_url_type"]
|
Chris@16
|
40 r.checkout_url = r.checkout_settings["checkout_url"]
|
Chris@16
|
41 r.display_login = r.checkout_settings["display_login"]
|
Chris@16
|
42 r.render_link = r.checkout_settings["render_link"]
|
Chris@16
|
43 r.checkout_url_overwrite = r.checkout_settings["checkout_url_overwrite"]
|
Chris@16
|
44 r.save!
|
Chris@16
|
45 end
|
Chris@16
|
46
|
Chris@16
|
47 remove_column :repositories, :checkout_settings
|
Chris@16
|
48 end
|
Chris@16
|
49 end
|