2010-10-17 78 views

回答

5

贾斯汀,

如果你有需要dm-migrations(这基本上意味着你使用的是RDBMS适配器反正),你可以做以下,以找出是否(即表内或列)的表存在。

# Find out if the table named 'people' exists 
DataMapper.repository(:default).adapter.storage_exists?('people') 

# Find out if there's a 'name' column in the 'people' table 
DataMapper.repository(:default).adapter.field_exists?('people', 'name') 

注意,这些API方法只能得到混入adapter如果dm-migrations是必需的,您使用的是DataObjectsAdapter后代。

1

你可以使用DataMapper.auto_update!这应该是无损(仅增加了表/列)。

+0

是的,谢谢,这就是我一直在解决这个问题,但我真的很想知道到底发生了什么foo.table_exists? – 2010-10-21 01:31:08