我正在使用Ruby on Rails,目前在尝试辨别PostgreSQL列中表示枚举类型的数值的含义时面临着一个挑战。为了进行说明,我有一个stage列,其中包含类似{0:删除,1:直播,2:暂停,3:enqueued,.},我正在寻找一种方法,可以在数据库IDE(如Datagrip)中轻松识别这些关联。 有没有一种方法可以自动生成PostgreSQL注解?
class AddCommentsToStatusColumn < ActiveRecord::Migration[7.0]
def up
comment_text = <<-SQL
COMMENT ON COLUMN jobs.status IS
'Enum: 0 => removed, 1 => live, 2 => suspended, 3 => enqueued';
SQL
execute(comment_text)
end
def down
execute("COMMENT ON COLUMN jobs.status IS NULL;")
end
end
1条答案
按热度按时间wr98u20j1#
您可以使用迁移来添加注解。例如
或者,如果你想为多个枚举自动化这一点,你可以使用一个rake任务。您可以修改此设置以使用多个模型。这样,每次更新枚举时,都可以重新运行此rake任务来相应地更新注解。
rake任务有两个缺点。
1.不像迁移那样进行版本控制
1.你要记得运行它
移民也有其不利的一面。
1.可能是矫枉过正的东西,如添加评论
1.每次更改都需要一个新的迁移文件
我原来的错误答案:
如果表中有一个整数列,例如
status
。然后你可以这样写一个枚举选项1:
备选方案二: