This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
Francesc Esplugas (author)
Sat Apr 25 03:26:57 -0700 2009
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | ||
| |
README.rdoc | ||
| |
Rakefile | ||
| |
generators/ | ||
| |
init.rb | ||
| |
lib/ | ||
| |
test/ |
README.rdoc
Database Constraints
Adding database constraints to PostgreSQL the Rails way.
Available constraints:
- Email: Validates format of email
- Login: Validates uniqueness of login names
- Positive: Validates positiveness of a number
- Length: Validates length of a value
- Uniqueness
- Foreign keys
Example
Foreign keys:
class AddForeignKeysToModels < ActiveRecord::Migration
def self.up
# add_foreign_key :from_table, :from_column, :to_table
add_foreign_key :articles, :user_id, :users
end
def self.down
# remove_foreign_key :from_table, :from_column
remove_foreign_key :articles, :user_id
end
end
Validations:
class AddConstraintsToModels < ActiveRecord::Migration
def self.up
add_email_check :users, :email
add_login_check :users, :login
add_positive_check :products, :price
add_length_check :users, :login, :is => 8
add_uniqueness_check :user, :login
end
def self.down
remove_email_check :users, :email
remove_login_check :users, :login
remove_positive_check :users, :price
remove_length_check :users, :login, :is => 8
remove_uniqueness_check :user, :login
end
end
How to test?
Create a PostgreSQL database named database_constraints and run rake.
Copyright © 2008-2009 Francesc Esplugas Marti, released under the MIT license








