2012-02-07 9 views
0

私はちょうど私のphotosテーブルにportfolioフィールドを追加するHerokuへのコミットをデプロイしました。私はこれにdefault => trueを設定しました。ここに私のschema.rbの簡略外観は次のとおりです。Herokuとデフォルトのデータベース設定

create_table "photos", :force => true do |t| 
    t.string "name" 
    t.string "description" 
    t.integer "user_id" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
    t.boolean "portfolio",   :default => true 
    end 

これは、開発中の罰金働いたとportfolioのための真のデフォルト値を持つように、現在のすべての写真を変更しました。そこで、私はHerokuにアップデートを展開しました。heroku rake db:migrateheroku restartでした。それは正常に移行されましたが、すべての画像はportfolioのデフォルトとしてNULLです。誰でもHerokuにデータベースのデフォルト値を変更させる方法を知っていますか?ありがとうございました。

答えて

0

この移行では、その列に新しい既定値を設定するだけです。既定値は既に値がNULLの既存行ではなく、新しい行にのみ適用されます。

あなたが言うように、あなたは遡及的移行の一環として、古いレコードにあなたのデフォルトを設定する必要があります。

Photo.update_all :portfolio => true 
0

マイグレーションと再移行に0​​を追加してこの問題を修正しました。

関連する問題