データベースの10進数(PostgreSQL NUMERIC
)フィールドから精度属性とスケール属性を削除しようとしていますか?
フィールド:
t.decimal "revenue_per_transaction", :precision => 8, :scale => 2
t.decimal "item_quantity", :precision => 8, :scale => 2
t.decimal "goal_conversion", :precision => 8, :scale => 2
t.decimal "goal_abandon", :precision => 8, :scale => 2
t.decimal "revenue", :precision => 8, :scale => 2
これらを無制限のスケールと精度に変更したり、スケールを拡大したりするには、移行に何を追加する必要がありますか?現在、私はスケール制限に達し、次のようなエラーが発生しています。
ERROR: numeric field overflow
これがコンテキストです: "PG :: Error-数値フィールドオーバーフロー" on Herok
フォーマット :
change_column(table_name, column_name, type, options): Changes the column to a different type using the same parameters as add_column.
まずあなたのターミナルで:
Rails g migration change_numeric_field_in_my_table
次に、移行ファイルで:
class ChangeNumbericFieldInMyTable < ActiveRecord::Migration
def self.up
change_column :my_table, :revenue_per_transaction, :decimal, :precision => give whatever, :scale => give whatever
end
end
その後
run rake db:migrate
ソース: http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
移行ファイルで、フィールドを:integerに変更し、run rake db:migrateを実行します。