joevandyk / database_constraints forked from fesplugas/database_constraints
- Source
- Commits
- Network (2)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
Joe Van Dyk (author)
Sat Oct 24 11:50:34 -0700 2009
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
MIT-LICENSE | Tue Apr 21 02:26:34 -0700 2009 | |
| |
README.rdoc | Sat Apr 25 03:17:01 -0700 2009 | |
| |
Rakefile | Sat Apr 25 01:04:14 -0700 2009 | |
| |
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

