2: def self.init
3: oldout = nil
4: Puppet::Util.benchmark(Puppet, :notice, "Initialized database") do
5:
6: oldout = $stdout
7: $stdout = File.open("/dev/null", "w")
8: ActiveRecord::Schema.define do
9: create_table :resources do |t|
10: t.column :title, :text, :null => false
11: t.column :restype, :string, :null => false
12: t.column :host_id, :integer
13: t.column :source_file_id, :integer
14: t.column :exported, :boolean
15: t.column :line, :integer
16: t.column :updated_at, :datetime
17: t.column :created_at, :datetime
18: end
19: add_index :resources, :host_id, :integer => true
20: add_index :resources, :source_file_id, :integer => true
21:
22:
23:
24: if Puppet[:dbadapter] == "mysql"
25: execute "CREATE INDEX typentitle ON resources (restype,title(50));"
26: else
27: add_index :resources, [:title, :restype]
28: end
29:
30: create_table :source_files do |t|
31: t.column :filename, :string
32: t.column :path, :string
33: t.column :updated_at, :datetime
34: t.column :created_at, :datetime
35: end
36: add_index :source_files, :filename
37:
38: create_table :resource_tags do |t|
39: t.column :resource_id, :integer
40: t.column :puppet_tag_id, :integer
41: t.column :updated_at, :datetime
42: t.column :created_at, :datetime
43: end
44: add_index :resource_tags, :resource_id, :integer => true
45: add_index :resource_tags, :puppet_tag_id, :integer => true
46:
47: create_table :puppet_tags do |t|
48: t.column :name, :string
49: t.column :updated_at, :datetime
50: t.column :created_at, :datetime
51: end
52: add_index :puppet_tags, :id, :integer => true
53:
54: create_table :hosts do |t|
55: t.column :name, :string, :null => false
56: t.column :ip, :string
57: t.column :environment, :string
58: t.column :last_compile, :datetime
59: t.column :last_freshcheck, :datetime
60: t.column :last_report, :datetime
61:
62: t.column :updated_at, :datetime
63: t.column :source_file_id, :integer
64: t.column :created_at, :datetime
65: end
66: add_index :hosts, :source_file_id, :integer => true
67: add_index :hosts, :name
68:
69: create_table :fact_names do |t|
70: t.column :name, :string, :null => false
71: t.column :updated_at, :datetime
72: t.column :created_at, :datetime
73: end
74: add_index :fact_names, :name
75:
76: create_table :fact_values do |t|
77: t.column :value, :text, :null => false
78: t.column :fact_name_id, :integer, :null => false
79: t.column :host_id, :integer, :null => false
80: t.column :updated_at, :datetime
81: t.column :created_at, :datetime
82: end
83: add_index :fact_values, :fact_name_id, :integer => true
84: add_index :fact_values, :host_id, :integer => true
85:
86: create_table :param_values do |t|
87: t.column :value, :text, :null => false
88: t.column :param_name_id, :integer, :null => false
89: t.column :line, :integer
90: t.column :resource_id, :integer
91: t.column :updated_at, :datetime
92: t.column :created_at, :datetime
93: end
94: add_index :param_values, :param_name_id, :integer => true
95: add_index :param_values, :resource_id, :integer => true
96:
97: create_table :param_names do |t|
98: t.column :name, :string, :null => false
99: t.column :updated_at, :datetime
100: t.column :created_at, :datetime
101: end
102: add_index :param_names, :name
103: end
104: end
105: ensure
106: $stdout.close
107: $stdout = oldout if oldout
108: oldout = nil
109: end