Ruby on Rails では、移行時に外部キー制約を追加する方法は?
8527 次
4 に答える
14
これは、外部キー制約の追加と削除のサポートを含み、sqliteで失敗せず、schema.rbファイルで正しく機能するgemベースのソリューションです。
于 2009-11-22T08:25:21.273 に答える
4
これは matthhiggins-foreigner gem の更新です: http://github.com/sparkfly/foreigner
特徴:
- PostgreSQL 8.3.9 および MySQL 5.0.90 に対してテストされた rspec カバレッジ
- 移行サポート
- schema.rb のサポート
将来のバージョンには、複数テーブルの継承を実装するために必要な PostgreSQL の CHECK 制約が含まれます。
于 2010-04-09T21:24:34.010 に答える
2
私の知る限り、それに対する組み込みのサポートはありませんが、それを支援するプラグインがいくつかあります。それらを移行ファイルに手動で追加することもできます。そのために execute メソッドを使用するだけです。たとえば (Rails API のサンプル):
class MakeJoinUnique < ActiveRecord::Migration
def self.up
execute "ALTER TABLE `pages_linked_pages` ADD UNIQUE `page_id_linked_page_id` (`page_id`,`linked_page_id`)"
end
def self.down
execute "ALTER TABLE `pages_linked_pages` DROP INDEX `page_id_linked_page_id`"
end
end
于 2008-11-26T11:53:23.840 に答える
0
Products
とUser
モデルなど、次を追加するだけで十分でしょうか?
add_index :products, :user_id
于 2011-08-16T08:05:24.610 に答える