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:
25: if Puppet[:dbadapter] == "mysql"
26: execute "CREATE INDEX typentitle ON resources (restype,title(50));"
27: elsif Puppet[:dbadapter] != "oracle_enhanced"
28: add_index :resources, [:title, :restype]
29: end
30:
31: create_table :source_files do |t|
32: t.column :filename, :string
33: t.column :path, :string
34: t.column :updated_at, :datetime
35: t.column :created_at, :datetime
36: end
37: add_index :source_files, :filename
38:
39: create_table :resource_tags do |t|
40: t.column :resource_id, :integer
41: t.column :puppet_tag_id, :integer
42: t.column :updated_at, :datetime
43: t.column :created_at, :datetime
44: end
45: add_index :resource_tags, :resource_id, :integer => true
46: add_index :resource_tags, :puppet_tag_id, :integer => true
47:
48: create_table :puppet_tags do |t|
49: t.column :name, :string
50: t.column :updated_at, :datetime
51: t.column :created_at, :datetime
52: end
53:
54:
55: add_index :puppet_tags, :id, :integer => true if Puppet[:dbadapter] != "oracle_enhanced"
56:
57: create_table :hosts do |t|
58: t.column :name, :string, :null => false
59: t.column :ip, :string
60: t.column :environment, :text
61: t.column :last_compile, :datetime
62: t.column :last_freshcheck, :datetime
63: t.column :last_report, :datetime
64:
65: t.column :updated_at, :datetime
66: t.column :source_file_id, :integer
67: t.column :created_at, :datetime
68: end
69: add_index :hosts, :source_file_id, :integer => true
70: add_index :hosts, :name
71:
72: create_table :fact_names do |t|
73: t.column :name, :string, :null => false
74: t.column :updated_at, :datetime
75: t.column :created_at, :datetime
76: end
77: add_index :fact_names, :name
78:
79: create_table :fact_values do |t|
80: t.column :value, :text, :null => false
81: t.column :fact_name_id, :integer, :null => false
82: t.column :host_id, :integer, :null => false
83: t.column :updated_at, :datetime
84: t.column :created_at, :datetime
85: end
86: add_index :fact_values, :fact_name_id, :integer => true
87: add_index :fact_values, :host_id, :integer => true
88:
89: create_table :param_values do |t|
90: t.column :value, :text, :null => false
91: t.column :param_name_id, :integer, :null => false
92: t.column :line, :integer
93: t.column :resource_id, :integer
94: t.column :updated_at, :datetime
95: t.column :created_at, :datetime
96: end
97: add_index :param_values, :param_name_id, :integer => true
98: add_index :param_values, :resource_id, :integer => true
99:
100: create_table :param_names do |t|
101: t.column :name, :string, :null => false
102: t.column :updated_at, :datetime
103: t.column :created_at, :datetime
104: end
105: add_index :param_names, :name
106: end
107: end
108: ensure
109: $stdout.close
110: $stdout = oldout if oldout
111: oldout = nil
112: end