同じRailsプロジェクトで2台の異なるコンピューターでSQLite3とMySQLを使用しています。schema.rb
すべての移行を実行したときに生成されるものは、両方の環境で異なって見えることに気付きました。SQLite3環境で移行を実行すると、次のステートメントがファイルから削除されschema.rb
ます。
add_index "places", ["user_id"], :name => "places_user_id_fk"
add_foreign_key "places", "users", :name => "places_user_id_fk"
とで移行を拡張する外国人の宝石を使用していることに注意してください。add_foreign_key
remove_foreign_key
問題に関連する移行とモデルは次のとおりです。
# 20130123004056_create_places.rb
class CreatePlaces < ActiveRecord::Migration
def change
create_table :places do |t|
t.string :name
t.string :location
t.integer :user_id
t.timestamps
end
end
end
..。
# 20130123234250_add_foreign_key.rb
class AddForeignKey < ActiveRecord::Migration
def change
add_foreign_key(:places, :users)
end
end
..。
# user.rb
class User < ActiveRecord::Base
has_many :places
end
..。
# place.rb
class Place < ActiveRecord::Base
belongs_to :user
end
質問: SQLite3とMySQLの両方がそれを処理できる方法で、users
それらの間の関係をどのように定義できますか?places