Class: DBLeftovers::GenericDatabaseInterface
- Inherits:
-
Object
- Object
- DBLeftovers::GenericDatabaseInterface
show all
- Defined in:
- lib/db_leftovers/generic_database_interface.rb
Instance Method Summary
collapse
Instance Method Details
#execute_add_constraint(chk) ⇒ Object
53
54
55
56
57
58
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 53
def execute_add_constraint(chk)
sql = " ALTER TABLE \#{chk.on_table} ADD CONSTRAINT \#{chk.constraint_name} CHECK (\#{chk.check})\n EOQ\n execute_sql sql\nend\n"
|
#execute_add_foreign_key(fk) ⇒ Object
39
40
41
42
43
44
45
46
47
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 39
def execute_add_foreign_key(fk)
on_delete = "ON DELETE CASCADE" if fk.cascade
on_delete = "ON DELETE SET NULL" if fk.set_null
execute_sql %{ALTER TABLE #{fk.from_table}
ADD CONSTRAINT #{fk.constraint_name}
FOREIGN KEY (#{fk.from_column})
REFERENCES #{fk.to_table} (#{fk.to_column})
#{on_delete}}
end
|
#execute_add_index(idx) ⇒ Object
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 17
def execute_add_index(idx)
unique = idx.unique? ? 'UNIQUE' : ''
where = idx.where_clause.present? ? "WHERE #{idx.where_clause}" : ''
using = idx.using_clause.present? ? "USING #{idx.using_clause}" : ''
sql = " CREATE \#{unique} INDEX \#{idx.index_name}\n ON \#{idx.table_name}\n \#{using}\n (\#{idx.index_function || idx.column_names.join(', ')})\n \#{where}\n EOQ\n execute_sql(sql)\nend\n"
|
#execute_drop_constraint(constraint_name, on_table) ⇒ Object
60
61
62
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 60
def execute_drop_constraint(constraint_name, on_table)
execute_sql %{ALTER TABLE #{on_table} DROP CONSTRAINT #{constraint_name}}
end
|
#execute_drop_foreign_key(constraint_name, from_table, from_column) ⇒ Object
49
50
51
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 49
def execute_drop_foreign_key(constraint_name, from_table, from_column)
execute_sql %{ALTER TABLE #{from_table} DROP CONSTRAINT #{constraint_name}}
end
|
#execute_drop_index(table_name, index_name) ⇒ Object
32
33
34
35
36
37
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 32
def execute_drop_index(table_name, index_name)
sql = " DROP INDEX \#{index_name}\n EOQ\n execute_sql(sql)\nend\n"
|
#execute_sql(sql) ⇒ Object
64
65
66
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 64
def execute_sql(sql)
@conn.execute(sql)
end
|
#lookup_all_constraints ⇒ Object
13
14
15
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 13
def lookup_all_constraints
raise "Should be overriden by a database-specific interface"
end
|
#lookup_all_foreign_keys ⇒ Object
9
10
11
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 9
def lookup_all_foreign_keys
raise "Should be overriden by a database-specific interface"
end
|
#lookup_all_indexes ⇒ Object
5
6
7
|
# File 'lib/db_leftovers/generic_database_interface.rb', line 5
def lookup_all_indexes
raise "Should be overriden by a database-specific interface"
end
|