【问题标题】:Database structure in a Rails project and keep track of migrationsRails 项目中的数据库结构并跟踪迁移
【发布时间】:2013-04-30 21:34:02
【问题描述】:

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

例如,如果我决定添加一些东西,我会通过迁移添加它。然后在另一个迁移中,我出于某种原因将其删除。最后我决定把它拿回来。很快就会有一堆乱七八糟的迁移。

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

【问题讨论】:

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


    【解决方案1】:

    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.

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-08-16
        • 1970-01-01
        • 2022-01-18
        • 1970-01-01
        • 2010-09-13
        • 2017-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多