如果我有这个程序。
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 :(得分:0)
来自CommonWare's CWAC lib,auto_upgrade!
:
检查模型的有效性并初始化与关系相关的所有属性
所以我倾向于在auto_migrate
或finalize
之后立即使用它,因为这些是实际更改数据库内容的迁移,所以在这些之后你应该使用 comment = None
name = None
problemName = "Sad"
relation = "Mother"
source = "Provider"
},
(Problem){
comment = None
name = None
problemName = "Stress"
relation = "Father"
source = "Provider"
}
}
}
来确保所有的属性' (列)更新在数据库中修改。