我有一个 Mysql 表定义为:
CREATE TABLE `Events` (
`entity` enum('CLN','TDS','TMS','VTMS') NOT NULL DEFAULT 'CLN',
`type` enum('INFO','STAT','WARN') NOT NULL)
如何在 Ruby 中找到 ENUM 类型的列定义?
我认为会有一种更简单的方法来找出 ENUM 类型的列定义,但这是我的解决方案:
>> ActiveRecord::Migration.select("show create table Events")
.first.values.to_s
.split("\n")
.select{ |line| line.match(/entity/) }
.pop
.match(/enum\(([',\w]*)/)[1]
.gsub("'",'')
.split(',')
-- select("show create table Events") -> 0.0004s
=> [“CLN”,“TDS”,“TMS”,“VTMS”]