Class: DbDiff::Delta::AddTable
- Inherits:
-
DbDiff::Delta
- Object
- DbDiff::Delta
- DbDiff::Delta::AddTable
- Defined in:
- lib/dbdiff/delta.rb
Instance Attribute Summary
Attributes inherited from DbDiff::Delta
Instance Method Summary collapse
-
#initialize(element) ⇒ AddTable
constructor
A new instance of AddTable.
- #process(database) ⇒ Object
- #sql ⇒ Object
Methods inherited from DbDiff::Delta
Constructor Details
#initialize(element) ⇒ AddTable
Returns a new instance of AddTable.
212 213 214 215 216 217 218 219 |
# File 'lib/dbdiff/delta.rb', line 212 def initialize(element) super # we don't clone foreign_keys or rows since # the table_elements diff will take care of them @element.triggers = [] @element.rows = [] @element.foreign_keys = [] end |
Instance Method Details
#process(database) ⇒ Object
234 235 236 |
# File 'lib/dbdiff/delta.rb', line 234 def process(database) database.tables << element end |
#sql ⇒ Object
221 222 223 224 225 226 227 228 229 230 231 232 |
# File 'lib/dbdiff/delta.rb', line 221 def sql # XXX may need to SET FOREIGN_KEY_CHECKS = 0; sql = "CREATE TABLE `%s` (\n" % element.name # intentionally skip foreign_keys to avoid missing tables # foreign_keys get picked up with the table_element diff sql += (element.columns.map{|c| c.definition} + element.keys.map{|k| k.definition}).join(",\n") sql += "\n) ENGINE=%s DEFAULT CHARSET=%s" % [element.engine, element.charset] sql end |