Ruby on rails 如何创建rails迁移以删除/更改精度和小数比例?

Ruby on rails 如何创建rails迁移以删除/更改精度和小数比例?,ruby-on-rails,database,ruby-on-rails-3,postgresql,Ruby On Rails,Database,Ruby On Rails 3,Postgresql,我正在尝试从数据库中的十进制(PostgreSQLNUMERIC)字段中删除精度和比例属性 字段: t.decimal "revenue_per_transaction", :precision => 8, :scale => 2 t.decimal "item_quantity", :precision => 8, :scale => 2 t.decimal "goal_conversion", :precision =>

我正在尝试从数据库中的十进制(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
以下是上下文:

格式:

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

源:

在迁移文件中将字段更改为:整数 跑
运行rakedb:migrate

本质上,寻找编写
altertable的rails迁移方式。。。更改列。。。键入NUMERIC
。接受答案或添加有关其未被接受原因的注释?删除精度如何?@Hamdan您需要将精度/比例设置为默认值,这取决于您的数据库:Postgres没有默认值:
PostgreSQL::precision[1..infinity],:scale[0..infinity]。没有默认值。
但在
change\u列中未指定精度和比例似乎有效。您需要一个新的迁移文件。使用相同的迁移文件将不起作用。
run rake db:migrate