我第一次使用Padrino和DataMapper。如果我理解正确,
padrino g model Foo
将models/foo.rb
以及db/migrate/001_create_foos.rb
。
为了创建索引,我需要在模型中指定它,而不是在迁移中指定。
padrino rake dm:auto:{upgrade|migrate}
将从模型生成数据库,而不关注db/migrate
文件夹。
因此,似乎只是将迁移保留为“以防万一”以升级生产数据库。有没有办法从模型中生成迁移?如果没有,那么在您更改模型时,其他所有人是否也在努力让迁移保持最新?人们如何撰写他们的迁移?
答案 0 :(得分:1)
根据Padrino文件,我猜你是对的。 Orm section Migration Generator section 声明 auto 命名空间不会使用生成的迁移。
基本上,您可以直接编辑schema.rb并使用padrino rake执行非破坏性迁移,而不是编写迁移:ar:auto:upgrade
我猜您可以通过迁移来跟踪数据库,将 auto 命名空间删除为:
rake dm:migrate # Migrates the database to the latest version
rake dm:migrate:down[version] # Migrates down using migrations
rake dm:migrate:up[version] # Migrates up using migrations
按照{{3}}
中的说明生成迁移