Делаю очередной проект на Ruby on Rails. Как обычно, в миграциях понадобились foreign keys на уровне БД. Окинул взглядом все плагины, которые смог найти в google и на github.com. Ни один из них не умеет делать FK, используя и .
Поэтому сел и написал свой плагин: .
Установка:
Rails::Initializer.run do |config|
...
config.gem "active_record_foreign_keys", :source => "http://gemcutter.org"
...
end
$ rake gems:install
Использование:
def self.up
# create reference table
create_table :users do |t|
end
# create referencing table
create_table :a_examples do |t|
t.references :user, :foreign_key => true
end
# or
create_table :b_examples do |t|
t.references :user, :foreign_key => {
n_update => :cascade,
n_delete => :restrict }
end
# or
create_table :c_examples do |t|
end
add_foreign_key :c_examples, :user_id, :users, :id,
n_update => :no_action,
n_delete => :set_null
# or change existing table
change_table :d_examples do |t|
t.references :user, :foreign_key => true
end
end
def self.down
# remove constraint
remove_foreign_key :examples, :user_id, :users, :id
end
Плагин тестировался только под PostgreSQL, но по идее должен работать и под MySQL, и под Sqlite.
Похожие записи: