0

我有一个 Mysql 表定义为:

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

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

4

1 回答 1

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(',')

-- select("show create table Events") -> 0.0004s

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

于 2012-12-07T10:38:00.987 回答