【发布时间】:2012-10-26 22:07:59
【问题描述】:
我正在考虑在我的下一个项目中使用 Ruby on Rails。了解 Rails 网站的部署很容易理解(听起来我将使用Phusion Passenger)
但现在我正在尝试找出数据库。我看到了很多关于“数据库迁移”的信息,它允许我使用 ruby 代码更新数据库。我还看到我被允许创建这些迁移的 up 和 down 变体。
但是,我只能理解它是如何在一个方向上干净利落地工作的。想象一下,如果我突然说“颜色列不能为空”。因此,up 将使其成为必需项,并为所有 NULL 条目提供默认值。但是down会做什么呢?如果您关心它与开始时的方式相同,则不能将默认值设置回 NULL。
这对于发布到生产来说并不重要。这很可能只在一个方向上完成(在向上方向)。 但是,我想使用 Gerrit 进行代码审查以及设置机器人以在允许签入之前运行构建...
那怎么可能呢?从一个代码审查到下一个,构建服务器将检查新的代码集并运行迁移?但是当这种情况发生时,它甚至不会保留之前的迁移代码,那么它如何运行 down 步骤呢?作为一个更简单的例子,我看不出如何检查旧版本的代码并向后“db migrate”。
【问题讨论】:
标签: ruby-on-rails ruby database version-control