如何在Ruby中找到MySQL ENUM类型的列定义?

时间:2012-11-27 17:11:19

标签: mysql ruby

我将Mysql表定义为:

CREATE TABLE `Events` (
 `entity` enum('CLN','TDS','TMS','VTMS') NOT NULL DEFAULT 'CLN',
 `type` enum('INFO','STAT','WARN') NOT NULL)

如何在Ruby中找到ENUM类型列定义?

1 个答案:

答案 0 :(得分:0)

我认为有一种更简单的方法可以找到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(',')

- 选择(“show create table Events”)     - > 0.0004s

=> [“CLN”,“TDS”,“TMS”,“VTMS”]