0

我检查了 git 中的一个分支,以试验开发一项涉及进行三个迁移的功能,我已经运行了该功能。在数据库中保留非常少量的数据并不重要。将分支合并回master时如何处理?我应该在合并之前回滚迁移,然后在合并后再次运行它们(正如一个 SO 答案所建议的那样),还是我保持原样并将所有内容提交到分支然后合并它而不回滚任何内容。另一个 SO 答案建议从 gitignore 文件中删除 db,但不清楚是否仅在保留数据可能很重要的情况下才需要这样做。

# Ignore the default SQLite database.
/db/*.sqlite3
4

1 回答 1

3

*.sqlite3你不应该在 git 中跟踪你的开发文件。

你应该

  1. 合并master到你的分支
  2. 确保一切顺利
  3. 查看master
  4. 将分支合并回master
  5. 继续发展

合并将从分支中提取您的迁移。您可以在合并之前回滚,进行合并,然后迁移,但没有必要;最后生成的架构将是相同的。


在需要回滚/迁移的情况下,您之间的迁移master和分支之间可能会以某种方式相互冲突。当您“确保一切正常”时,您将在上面的第 2 步中解决此问题。

作为一般规则,您应该能够获取一个完全空白的数据库,运行rake db:migrate并最终获得一个最新的数据库结构,而不会出现任何故障。这就是为什么上面的步骤 #2 很重要,以确保您不会将中断/冲突的迁移合并回master.

至于在开发过程中可能会丢失数据的情况,这就是固定装置的用途。您可以使用 Rails 播种功能,或类似factory_girl的 gem 。

于 2013-02-25T00:07:10.657 回答