2017-04-18 13 views
0

現在、ブール値であるデータベーステーブル(私はpostgresを使用しています)に:activeという名前の列があり、デフォルト値はtrueです。この列の型をブール値から整数に変更したいので、このプロジェクトでは列挙型を使うことができます。私は、ドキュメントといくつかのスタックオーバーフローの答えをチェックしたが、まだ固い答えが見つかりませんでした。移行を使用してこの変更を行うにはどうすればよいですか?私はそれが違いを生むならば、Rails 5を使っています。ありがとう!Railsの列データ型をブール値から整数に変更

答えて

2

あなたの移行ファイルはまた、あなたが同じ移行ファイルで行うことができます整数値に以前のすべてのレコードを書き換える必要があり、この

def change 
    change_column :table_name, :active, :integer 
end 

のようになります。

rake db:migrate 

定義する理由:

class ChangeDataTypeForActive < ActiveRecord::Migration 

    def self.up 
    change_column :table_name, :active, :integer 
    end 

    def self.down 
    change_column :table_name, :active, :boolean 
    end 

end 

が次に移行を実行します。そして、change_columnを使用するように移行を編集

rails g migration change_data_type_for_active 

0

あなたが新しい移行を作成することができますupdownの方法は、あなたが戻すことができることですuデータベースをprevios状態に変更します。

rake db:rollback 
関連する問題