【问题标题】:How do I maintain a consistent db for a rails project?如何为 Rails 项目维护一致的数据库?
【发布时间】:2018-09-26 03:44:48
【问题描述】:

为清楚起见进行编辑: 我在数据库的表中编辑了一条记录。我希望此记录在使用该项目的所有用户中保持一致。我们所有人都在使用同一个已清理数据库的副本。 我知道我可以为此更改创建一个迁移文件,但我已经看到迁移通常用于数据库的架构更改。 我是 Rails 新手,所以请多多包涵。

【问题讨论】:

  • 问题是不清楚您是否正在检查 Migration 或语法或 Rails 特定细节。请添加更多上下文
  • 老实说,我不明白你想问什么,你的问题是。你能详细说明一下吗?
  • 我的问题基本上是,我可以使用迁移来更新表中的记录吗?换句话说,在用户之间同步记录。
  • 对于与架构更改无关的数据库更改,您可以编写一个 rake 任务,然后让团队运行该 rake 任务。例如:您想将所有 user_uid 从纯字符串更改为类似 <provider_name>-user_uid_string 的字符串
  • @Techguy1611 “我可以使用迁移来更新表中的记录吗?” – 是的,你可以。来自Migrations and Seed Data“迁移也可用于添加或修改数据。”

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


【解决方案1】:

是的,您可以使用 rails 迁移来更新数据库值。以下是为每个用户添加新列和更新值的示例:

class AddStatusToUser < ActiveRecord::Migration
  def up
    add_column :users, :status, :string
    User.find_each do |user|
      user.status = 'active'
      user.save!
    end
  end

  def down
    remove_column :users, :status
  end
end

在您的情况下,您可以创建新的迁移并放置代码以更新任何表的任何列值。

【讨论】:

    猜你喜欢
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多