提交 cae93be0 编写于 作者: X Xavier Noria

promotes change_column_null to the migrations API

上级 efa5307f
## Rails 4.0.0 (unreleased) ##
* Promotes `change_column_null` to the migrations API. This macro sets/removes
`NOT NULL` constraints, and accepts an optional argument to replace existing
`NULL`s if needed. The adapters for SQLite, MySQL, PostgreSQL, and (at least)
Oracle, already implement this method.
*Xavier Noria*
* Uniqueness validation allows you to pass `:conditions` to limit
the constraint lookup.
......
......@@ -402,6 +402,26 @@ def change_column_default(table_name, column_name, default)
raise NotImplementedError, "change_column_default is not implemented"
end
# Sets or removes a +NOT NULL+ constraint on a column. The +null+ flag
# indicates wheter the value can be +NULL+. For example
#
# change_column_null(:users, :nickname, false)
#
# says nicknames cannot be +NULL+ (adds the constraint), whereas
#
# change_column_null(:users, :nickname, true)
#
# allows them to be +NULL+ (drops the constraint).
#
# The method accepts an optional fourth argument to replace existing
# +NULL+s with some other value. Use that one when enabling the
# constraint if needed, since otherwise those rows would not be valid.
#
# Please note the fourth argument does not set a column's default.
def change_column_null(table_name, column_name, null, default = nil)
raise NotImplementedError, "change_column_null is not implemented"
end
# Renames a column.
#
# rename_column(:suppliers, :description, :name)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册