我们的应用程序具有非常标准的数据库配置。在实时服务器上,如果我想查询数据库的内容,我必须运行script/console production
或script/dbconsole production
,我冒险意外修改我们的数据。我想创建一个新的rails环境,只读访问同一个数据库,这样我就可以在没有风险的情况下运行script/console readonly
或script/dbconsole readonly
。我见过的解决方案涉及添加一个新的mysql用户,或猴子修补ActiveRecord :: Base。我不想这样做 - 我想在database.yml中指定与数据库的连接应该只读。这可能,如果是的话,我该怎么做?我尝试添加readonly: true
,但它被忽略了。
答案 0 :(得分:4)
您可以在沙盒模式下使用控制台。在沙箱模式下,退出控制台时,将在控制台中进行的任何数据库更改都将被还原。
$ script/console --sandbox
您无法在database.yml
中指定只读模式。