如何将列类型从整数更改为小数,小数点后有一个字母?
How do i change column type from integer to decimal, with a letter after the decimal?
我刚刚意识到我的列类型需要 decimal 而不是 integer
我可以直接在 seeds.rb 中进行更改吗?还是我应该做其他事情?
另外,如果我想在小数点后添加一个字母,我该怎么做?
示例: 2.0L, 2.5L, 5.7L, etc.
这会将列类型更改为十进制。要了解规模和精度,请查看这个 Whosebug 问题 or the docs https://edgeguides.rubyonrails.org/active_record_migrations.html#column-modifiers
change_column :table_name, :column_name, :decimal, :precision => 8, :scale => 2, :default => 0
如果您想在数据库中存储一个字母,该列类型不能是小数或整数。字符串字段更适合您的情况。我假设你的主要问题是关于小数的。
如果您确实想更改数据库中的列类型,您应该使用 Migrations 来完成。从终端,在您的应用程序目录中,运行:bin/rails g migration changeFieldNameFromIntegerToDecimal
.
这将生成一个文件名中带有时间戳的迁移文件,其中有一个更改方法告诉 rails 您希望如何更改数据库。在该更改方法中,输入:
def change
change_column :table_name, :column_name, :decimal, precision: :8, scale: :2
end
精度和比例选项执行以下操作(来自上面 link):
precision: Defines the precision for the decimal fields, representing the total number of digits in the number.
scale: Defines the scale for the decimal fields, representing the number of digits after the decimal point.
如果要将其转换为字符串,则迁移文件将包含:
def change
change_column :table_name, :column_name, :string
end
最后 运行 bin/rails db:migrate
从您的应用程序目录中的终端执行迁移。
我刚刚意识到我的列类型需要 decimal 而不是 integer
我可以直接在 seeds.rb 中进行更改吗?还是我应该做其他事情?
另外,如果我想在小数点后添加一个字母,我该怎么做?
示例: 2.0L, 2.5L, 5.7L, etc.
这会将列类型更改为十进制。要了解规模和精度,请查看这个 Whosebug 问题 or the docs https://edgeguides.rubyonrails.org/active_record_migrations.html#column-modifiers
change_column :table_name, :column_name, :decimal, :precision => 8, :scale => 2, :default => 0
如果您想在数据库中存储一个字母,该列类型不能是小数或整数。字符串字段更适合您的情况。我假设你的主要问题是关于小数的。
如果您确实想更改数据库中的列类型,您应该使用 Migrations 来完成。从终端,在您的应用程序目录中,运行:bin/rails g migration changeFieldNameFromIntegerToDecimal
.
这将生成一个文件名中带有时间戳的迁移文件,其中有一个更改方法告诉 rails 您希望如何更改数据库。在该更改方法中,输入:
def change
change_column :table_name, :column_name, :decimal, precision: :8, scale: :2
end
精度和比例选项执行以下操作(来自上面 link):
precision: Defines the precision for the decimal fields, representing the total number of digits in the number.
scale: Defines the scale for the decimal fields, representing the number of digits after the decimal point.
如果要将其转换为字符串,则迁移文件将包含:
def change
change_column :table_name, :column_name, :string
end
最后 运行 bin/rails db:migrate
从您的应用程序目录中的终端执行迁移。