質問

このようお問い合わせをいただいてお前: レール小数点精度-規模

が運営し 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らのカラムの型の宣言 とりダイナミックで、カラムのコンテンツはたずはこちら

変更カラムのタイプ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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top