如何检查mysql数据库连接是否已设置并且已创建特定表

时间:2015-12-14 10:50:09

标签: mysql ruby-on-rails-4.2

我正在编写一个脚本,用于检查是否已根据迁移创建了mysql表。

def is_table_created?(db, table)
    begin
        ActiveRecord::Base.connection_pool.with_connection do |c|
           return c.table_exists?("%s.%s" % [db, table])
        end
    rescue Mysql2::Error, ActiveRecord::StatementInvalid => e
        logger.warn(e)
        return false 
    end
end

但我不知道它有什么问题。每次提出异常。

1 个答案:

答案 0 :(得分:0)

我是通过使用mysql2 gem完成的。

def is_table_created?(db, table)
    begin
        connection = Mysql2::Client.new(host: 'localhost', username: 'root', database: db)
        connection.query("describe #{table};")
        return true 
    rescue Exception => e
        logger.warn(e)
        return false 
    ensure
        connection.close if connection
    end
end