1

こんにちは皆さん、スキーマを更新するためだけに移行をロールバックしようとしている場合、データを失わない方法があるかどうか知りたいですか? たとえば、rake db:migrate を実行した後、数ラウンドのデータが挿入された後、スキーマに新しい属性を追加したいとします。

私の質問は、以前のレコードを失うことなく新しい属性を追加するにはどうすればよいですか? そうすることは可能ですか?rake db:rollback STEP= ... を実行して実行しただけで、生成したすべてのデータが失われたためです。ただ疑問に思っています。

助けてくれてありがとう 差出人: BC2

4

2 に答える 2

4

既存のテーブルがあり、既存のテーブルに新しい属性を追加したい場合は、単純な書き込みスタンドアロン移行。
例:属性名roll_noを持つ学生テーブルがあり、学生テーブルに「アドレス」属性を追加したい

$ rails generate migration AddAddressToStudents address:string

発生します

    class AddAddressToStudents < ActiveRecord::Migration
      def change
        add_column :students, :address, :string
      end
    end

次に、単に「rake db:migrate」を実行します

于 2013-10-05T23:04:59.797 に答える