Ruby on rails 运行迁移的git分支

Ruby on rails 运行迁移的git分支,ruby-on-rails,Ruby On Rails,我查看了git中的一个分支,尝试开发一个特性,该特性涉及进行三次迁移,我已经运行了三次迁移。在数据库中保存非常少量的数据并不重要。将分支合并回主分支时,如何处理此问题?我应该在合并之前回滚迁移,然后在合并之后再次运行迁移(正如一个SO答案所建议的那样),还是保持原样,将所有内容提交到分支,然后合并它而不回滚任何内容。另一个SO答案建议从gitignore文件中删除db,但不清楚这是否只在保存数据可能很重要的情况下才有必要 # Ignore the default SQLite database.

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

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

您不应该在git中跟踪
*.sqlite3
开发文件

你应该

  • master
    合并到您的分支中
  • 确保一切顺利
  • 签出
    master
  • 将分支合并回
    master
  • 继续发展
  • 合并将从分支中引入您的迁移。您可以在合并之前回滚,执行合并,然后迁移,但没有必要;最后生成的架构将是相同的


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

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


    对于在开发过程中可能丢失数据的情况,这就是fixture的用途。您可以使用Rails种子设定功能或类似gem的功能。

    您不应该在git中跟踪
    *.sqlite3
    开发文件

    你应该

  • master
    合并到您的分支中
  • 确保一切顺利
  • 签出
    master
  • 将分支合并回
    master
  • 继续发展
  • 合并将从分支中引入您的迁移。您可以在合并之前回滚,执行合并,然后迁移,但没有必要;最后生成的架构将是相同的


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

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

    对于在开发过程中可能丢失数据的情况,这就是fixture的用途。您可以使用Rails种子设定功能或类似gem的功能