私が抱えている問題は、移行を実行すると更新がデータベースに適用されますが、レールは同じことをしません。
もっと正確に言うと。番地付きの住所モデルがあります。最近、番地には (35B) のような文字を含めることができるはずだと言われました。したがって、整数列を文字列の列に変換したいと思います。これは私のデータでは問題ありません、赤。整数のみ。
適用した移行は期待どおりに機能します。postgres データベースの列の型を変更し、データの内容を保持します。私はこの移行を使用していました。
class ConvertIntToStringOnNumber < ActiveRecord::Migration
def change
change_table :addresses do |t|
t.change :number, :string
end
end
end
この schema.rb での移行結果
create_table "addresses", :force => true do |t|
t.string "street"
t.string "number"
t.integer "zip"
t.string "floor"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
私のherokuサーバーで移行を実行した後、フォームのデータを使用してデータベースにクエリを実行できません。これは以前は問題ありませんでした。Rails は整数を検索しようとしていますが、データベースには文字列が含まれています。
schema.rb が別のことを言っているにもかかわらず、Rails はこのクエリを実行しようとしています。ここでパーティーは終了です。
SELECT "addresses".* FROM "addresses" WHERE "addresses"."street" = 'xxxx' AND "addresses"."number" = 63 AND "addresses"."floor" = '' AND "addresses"."zip" = 9000 LIMIT 1):
私は forigen キーに関する多くの問題を見てきましたが、これはそれらの問題の 1 つではありません。