保持模型和迁移同步

时间:2013-12-17 05:58:45

标签: ruby datamapper padrino

我第一次使用Padrino和DataMapper。如果我理解正确,

  • padrino g model Foomodels/foo.rb以及db/migrate/001_create_foos.rb

  • 为了创建索引,我需要在模型中指定它,而不是在迁移中指定。

  • padrino rake dm:auto:{upgrade|migrate}将从模型生成数据库,而不关注db/migrate文件夹。

因此,似乎只是将迁移保留为“以防万一”以升级生产数据库。有没有办法从模型中生成迁移?如果没有,那么在您更改模型时,其他所有人是否也在努力让迁移保持最新?人们如何撰写他们的迁移?

1 个答案:

答案 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}}

中的说明生成迁移