我曾呼籲「獎」一欄:回報率:在Postgres不能只是change_column,罰款在MySQL(MySQL的發展,Postgres的在Heroku)
create_table :contests do |t|
t.text :prize
最近我意識到,這將永遠是一個整數,我要設置默認值:
def change
change_column :contests, :prize, :integer, :default => 200
這工作得很好我的本地機器,在那裏我使用的MySQL數據庫上。然而,當我推到我的生產現場(這是在Heroku上託管,這給了我一個Postgres DB)我得到以下錯誤:
PGError: ERROR: column "prize" cannot be cast to type "pg_catalog.int4"
: ALTER TABLE "contests" ALTER COLUMN "prize" TYPE integer
本文內容:http://www.postgresonline.com/periodical.php?i_id=3他們討論使用的使用來解決這個問題。但我不知道我該怎麼做,以及這是否適合我所要做的事。
任何深入瞭解搞清楚了這一點將會非常讚賞。
謝謝! 林戈
如果獎品列中的所有值都轉換爲整數您的代碼應該只有工作,還[這個答案](http://stackoverflow.com/questions/3537064/rails-migration-to-convert-string-to-見整數) – gshilin
是否有什麼理由不使用相同的數據庫進行開發? – sdolan