【发布时间】:2015-07-06 10:21:25
【问题描述】:
我们有一个带有 PostgreSQL 数据库的 Rails 应用程序。我们使用git 进行版本控制。
我们只是该项目的两个开发人员,所以我们都必须做一些事情,而当出现紧急情况时,我们往往不得不放弃一切来解决它们。
我们有一个主分支(称为staging 只是很难吗??? p>
当我处理需要更改数据库的功能时,我自然必须创建更改架构的迁移。假设我正在处理feature-emoji,并创建了一个迁移20150706101741_add_emoji_to_users.rb。我运行rake db:migrate 继续我的工作。
后来,我得知需要解决一些错误。我切换到staging 开始工作;但是,现在我的应用程序将出现异常,因为 db 架构与应用程序所期望的不匹配。所以在做git checkout staging之前,我必须记得做rake db:rollback。然后当我切换回feature-emoji 时,我必须再次运行rake db:migrate。
当只处理两个分支时,整个流程还不错,但是当 git rebases 和 git merges 发生时,它就变得复杂了。
有没有更好的方法来并行处理代码和数据库的版本控制?还是我注定每次要更改分支时都必须运行烦人的rake 任务?
【问题讨论】:
标签: database git version-control rake