【发布时间】:2017-09-23 15:59:39
【问题描述】:
我想使用 ga Postgres 9.5 数据库构建 Rails 数据库迁移,其中我有一个字符串列
def change
create_table :transactions do |t|
t.string transaction_type, null: false
但我想将列的值限制为仅某些字符串。有什么方法可以将其构建到我的迁移中?如果是这样,那会是什么样子?
【问题讨论】:
-
你能添加更多关于你想要做什么的细节吗?您可以使用枚举而不是字符串数据类型。
-
听起来可以解决我的问题。使用“枚举”,我可以将列限制为只有某些值吗?
-
enum不会限制数据库内部的内容,您仍然会将所有验证留给 Rails,并且(AFAIK)您的数据库最终将存储数字而不是字符串。如果您希望数据库完成这项工作,您可以使用 CHECK 约束。
标签: ruby-on-rails string postgresql migration ruby-on-rails-5