0

所以经过大量阅读后,我发现我不需要提前计划我的数据库。我刚开始处理应用程序并对每次更改进行迁移。

例如,如果我决定添加一些东西,我会通过迁移添加它。然后在另一个迁移中,我出于某种原因将其删除。最后我决定把它拿回来。在很短的时间之后,将会出现一团乱麻的迁移。

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

4

2 回答 2

0

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

如果您不断更改列,则没有那么有用,但您也可以运行rake db:migrate:status它将输出所有迁移的列表,并告诉您它们是否已运行。

于 2013-05-07T02:51:30.253 回答
0

Rails 的方式是通过迁移来做所有事情。根据您的情况,它会像:

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

似乎有很多迁移,但在实际情况下,它会保持您的数据库更改干净。因为在任何给定时间,当您这样做时:

rake db:migrate

Rails 将只运行挂起的迁移。

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

话虽如此,如果您想恢复迁移,可以使用命令之类的rollback命令。在此处阅读有关迁移的更多信息

于 2013-05-07T04:01:35.183 回答