gpt4 book ai didi

mysql - Ruby on Rails - 获取 MySql 数据库大小

转载 作者:可可西里 更新时间:2023-11-01 08:55:21 24 4
gpt4 key购买 nike

我想知道我的 MySql 数据库的当前大小,我使用以下方法获取该数据:

def self.calculate_total_db_size
sql = "SELECT table_schema AS 'database',
sum( data_length + index_length ) / ( 1024 *1024 ) AS size
FROM information_schema.TABLES
WHERE ENGINE=('MyISAM' || 'InnoDB' )
AND table_schema = '#{get_current_db_name}'"
return perform_sql_query(sql)
end



def self.get_current_db_name
return Rails.configuration.database_configuration[Rails.env]["database"]
end

def self.perform_sql_query(query)
result = []
mysql_res = ActiveRecord::Base.connection.execute(query)
mysql_res.each_hash{ |res| result << res }
return result
end

这在我的开发和暂存环境中非常有效,但由于某种原因,当我在生产环境中运行它时,查询不会返回任何值,如果我采用 MySql 查询并在我的生产数据库上手动运行它,我会得到正确的值。为什么我不能通过生产中的应用程序来做到这一点?

有什么想法吗?

最佳答案

我添加了更多日志,这帮助我查明了问题,我正在使用:Rails.configuration.database_configuration[Rails.env][“数据库”]当我在生产时返回一个空字符串而不是在任何其他环境,我想这是因为在我的 database.yml 中有一个链接生产下的开发设置(是什么让生产设置成为与开发人员相同)。无论如何,因为我不想更改我的 database.yml 文件,所以我只是更改了我获取数据库名称的方式。现在效果很好。

关于mysql - Ruby on Rails - 获取 MySql 数据库大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5842722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com