0

すべてが特定のサイトを指しているリンクのデータベースがありますが、そのサイトの異なるページです。サイトのドメインが変更されたため、その変更を反映するようにデータベースを更新する必要があります。ドメイン名を変更するだけで、残りのリンクは正常に機能します。

私の質問は、これを行うためにレール移行を使用できますか? 列のすべてのフィールドを編集して更新するには? これはどのように見えるでしょうか?

他にもアプローチする方法があることは承知していますが、Rails 移行のオプションを検討したいと思います。

前もって感謝します!

4

1 に答える 1

1

もちろん、2 つのオプションがあります。1) モデルで行うのと同じように、移行で ActiveRecord コードを書くことができます。

class ChangeDomainName < ActiveRecord::Migration
  def self.up
    YourModel.update_all "url = REPLACE(url, 'www.old-domain-name.com', 'www.new-domain-name.com')"
  end

  def self.down
    # ...
  end
end

このシナリオで覚えておくべきことの 1 つは、テーブルを変更した後、そのテーブルで ActiveRecord メソッドを呼び出す前に、同じ移行で列名や型などを変更update_allする必要があることです。YourModel.reset_column_information

2)「実行」メソッドで生のSQLを使用できます。

def self.up
  execute "UPDATE your_models SET url = REPLACE(url, 'www.old-domain-name.com', 'www.new-domain-name.com)"
end

個人的には最初の方法が好きです。

于 2011-06-17T14:58:26.287 に答える