レール:せを精密には規模のオプションとchange_columnる。
-
20-09-2019 - |
質問
このようお問い合わせをいただいてお前: レール小数点精度-規模
が運営し change_column
移行のため :precision
または :scale
れんに影響するschemaまたはデータベース db:migrate
行ないます。
私は移行用ファイルは以下のようなものです:
class ChangePrecisionAndScaleOfPaybackPeriodInTags < ActiveRecord::Migration
def self.up
change_column :tags, :payback_period, :decimal, { :scale => 3, :precision => 10 }
end
def self.down
change_column :tags, :payback_period, :decimal
end
end
私のスキーマ(データ)として:
t.decimal "payback_period"
んてことか?
おかげさ
ジ
解決 2
まないSQLite3
この簡単なテストアプリをしているところを走していまSQLite3の設定。どうやら、 SQLite3らのカラムの型の宣言 とりダイナミックで、カラムのコンテンツはたずはこちら
まだ試しがっていると確信していかにスキーマな変更が change_column
しない訳にはいSQLite3.
を返信しまいました。
他のヒント
た関係が同じ)の問題です。どうしてそうなっちゃうんですか変化する規模でを変更する場合には、その規模が必要になりフルライン:
change_column :something, :weight, :decimal, :precision => 10, :scale => 2
省略decimal(した)および精密(された10の原因となりまへの移行に失敗します。
削除と再生 db\schema.rb
ファイルです。
rake db:schema:dump
ハックができる場として安心してご利用いただけ:
class ChangePrecisionAndScaleOfPaybackPeriodInTags < ActiveRecord::Migration
def self.up
execute "ALTER TABLE tags CHANGE payback_period DECIMAL(3,10)"
end
def self.down
change_column :tags, :payback_period, :decimal
end
end
所属していません StackOverflow