Skip to content

willbryant/foreign_key_saver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForeignKeySaver
===============

This plugin adds an add_foreign_key_constraint schema method, and extends the
schema dump code to output these foreign key constraints.

Only MySQL and PostgreSQL are currently supported.


Examples
========

# adds a constraint on projects.customer_id with parent customers.id
add_foreign_key_constraint :projects, :customer_id, :customers, :id

# adds a constraint on projects(a, b) with parent(a, b) with the default RESTRICT update/delete actions
add_foreign_key_constraint "child", ["a", "b"], "parent", ["a", "b"]

# adds a constraint with the ON UPDATE action set to CASCADE and the ON DELETE action set to SET NULL
add_foreign_key_constraint 'projects', 'customer_id', 'customers', 'id', :on_update => :cascade, :on_delete => :set_null

The following actions are defined:
  :restrict
  :no_action
  :cascade
  :set_null (aka :nullify)
  :set_default
Note that MySQL does not support :set_default, and also treats :no_action as :restrict.


Compatibility
=============

Supports mysql, mysql2, postgresql.

Supported Rails 4.1, 4.0, 3.2.13, 3.1.8, 3.0.17, and 2.3.14.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages