Rails项目中的数据库结构并跟踪迁移

时间:2013-05-07 02:45:48

标签: ruby-on-rails database ruby-on-rails-3.2 rails-migrations

所以在经过多次阅读后我发现我不需要提前计划我的数据库。我只是开始研究应用程序并对每次更改进行迁移。

因此,例如,如果我决定添加一些内容,我会通过迁移添加它。然后在另一次迁移中,我出于某种原因将其删除。最后我决定把它拿回来。经过一段时间后,将会出现大量迁移。

如何跟踪它们?首先想想数据库结构会不会更容易?

2 个答案:

答案 0 :(得分:0)

您可以在db/schema.rb中看到您的数据库结构,它将显示您应用中当前所有的表,列和索引。

如果您经常更改列,则不会有帮助,但您也可以运行rake db:migrate:status,它将输出所有迁移的列表,并告诉您它们是否已运行。

答案 1 :(得分:0)

Rails方式是通过迁移完成所有事情。根据你的情况,它会像:

migration1 #add column A
migration2 #remove column A
migration3 #add column A again

似乎有很多迁移,但在实际情况下,它会保持数据库更改的清洁。因为在任何特定时间你都这样做:

rake db:migrate

Rails只会运行待处理的迁移。

在任何给定时间,您都会看到db/schema.rb文件包含所有迁移和最新迁移编号作为版本。

话虽如此,如果你想恢复迁移,还有rollback命令之类的命令。 Read more about migrations here