3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/data_mapper/auto_migrations.rb', line 3
def auto_migrate!
if self::subclasses.empty?
table = database.table(self)
table.associations.each do |association|
association.activate!
end
table.create!(true)
else
schema = database.schema
columns = self::subclasses.inject(schema[self].columns) do |span, subclass|
span + schema[subclass].columns
end
table_name = schema[self].name.to_s
table = schema[table_name]
columns.each do |column|
table.add_column(column.name, column.type, column.options)
end
table.associations.each do |association|
association.activate!
end
return table.create!(true)
end
end
|