如何只做积极的int字段?

时间:2016-03-18 16:52:16

标签: ruby-on-rails postgresql

我有posqtresql db。表格中有一个整数字段。如何让它只是积极的? 不在rails中验证。 我需要在迁移文件

中创建它

1 个答案:

答案 0 :(得分:3)

您可以在Postgresql中使用检查约束。 Rails迁移不会包含此行为,因此您必须自己编写SQL。 This page in the Rails Guides有几个关于如何处理这个问题的例子,所以一定要检查一下。

示例:

def up
  create_table :people do |t|
    t.integer :age
  end

  execute <<-SQL
    ALTER TABLE people ADD CONSTRAINT age CHECK (age > 0);
  SQL
end

注意:作为Rails Guides note,如果您要执行此操作,则必须使用SQL架构转储格式。这很容易设置,但它不允许你使用两个+不同的数据库系统(例如开发中的SQLite和生产中的PostgreSQL)。