如果我有这个程序。
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
如果我需要打电话,我应该打到哪里?
发布于 2016-09-23 06:11:24
在docs中,.finalize:
检查模型的有效性,并初始化与关系关联的所有属性
因此,我倾向于在auto_upgrade!或auto_migrate之后立即使用它,因为这些迁移实际上会更改数据库的内容,所以在这些迁移之后,您应该使用finalize来确保数据库中所有属性(列)的更新都被修改了。
https://stackoverflow.com/questions/37178709
复制相似问题