2016-05-12 51 views
0

如果我有這個程序。DataMapper,何時致電最終確定

require 'dm-core' 
require 'dm-migrations' 

DataMapper::Logger.new($stdout, :debug) 
DataMapper.setup(:default, 「sqlite3:///#{Dir.pwd}mydb.sqlite」) 

class MyClass 
    include DataMapper::Resource 
    property :id, Serial 
    property :column1, String, :required => true 
end 
DataMapper.auto_migrate! 

class MyClass 
    property :column2, String 
end 
DataMapper.auto_upgrade! 

它將運行並創建一個表myclasses,然後更新表。 這是否意味着我不需要撥打DataMapper.finalize

如果我需要打電話,我應該在哪裏打電話?

回答

0

docs.finalize

檢查有效性的模型並初始化關係

相關聯的所有屬性,以便我傾向於auto_upgrade!auto_migrate後立即使用,因爲這些都是遷移實際上會更改數據庫的內容,因此在使用finalize之後,請確保在數據庫中修改了所有屬性的'('''''''''''''''''''''''