我可以在database.yml中指定rails环境应该只读访问数据库吗?

我们的应用程序具有非常标准的数据库配置。 在实时服务器上,如果我想查询数据库的内容,我必须运行script/console productionscript/dbconsole production ,我冒险意外修改我们的数据。 我想创建一个新的rails环境,只读访问同一个数据库,这样我就可以在没有风险的情况下以script/console readonly方式运行script/console readonly或者script/dbconsole readonly 。 我见过的解决方案涉及添加一个新的mysql用户,或猴子修补ActiveRecord :: Base。 我不想这样做 – 我想在database.yml中指定与数据库的连接应该只读。 这是可能的,如果是的话,我该怎么做? 我尝试过添加readonly: true但它被忽略了。

您可以在沙盒模式下使用控制台。 在沙箱模式下,退出控制台时,将在控制台中进行的任何数据库更改都将还原。

 $ script/console --sandbox 

您无法在database.yml指定只读模式。