我在 Rails 上学习了几门课程,但关于迁移,我还不清楚一些事情:
1.)如果我生成一个迁移并运行它,无论我执行多少操作,rails 仍然会创建一个全新的架构版本吗?无论如何在迁移之前查看每个版本的架构?
2.) 如果我没有在迁移中定义 down 方法并且我尝试回滚,回滚会什么都不做吗?
3.) 我应该在运行迁移后删除它们吗?
我在 Rails 上学习了几门课程,但关于迁移,我还不清楚一些事情:
1.)如果我生成一个迁移并运行它,无论我执行多少操作,rails 仍然会创建一个全新的架构版本吗?无论如何在迁移之前查看每个版本的架构?
2.) 如果我没有在迁移中定义 down 方法并且我尝试回滚,回滚会什么都不做吗?
3.) 我应该在运行迁移后删除它们吗?
如果您在没有定义 down 方法的情况下运行迁移来创建表,则不需要在迁移后删除迁移文件,如果您尝试 rake db:rollback 它将恢复您上次执行的迁移,您可以在此处查看更多迁移
Migrate 对您的架构进行增量更改。它知道(除非你把它填满)你的模式处于什么状态,并运行那些尚未运行的迁移。例如,如果您执行 drop create 和 migrate 然后第二次迁移,则第二次不执行任何操作,因为它们都已完成。
No down 确实意味着回滚将无济于事。
唯一应该删除迁移的情况是完全撤消更改。即你添加了一个模型,然后决定你不需要它。
任何其他方法都意味着您无法从头开始实现您的架构。例如,您添加一个模型并迁移,然后您意识到您需要一个关系并这样做。删除添加表的迁移,事情发生了可怕的错误。