症状:使用msdb.dbo.sp_send_dbmail发送附件会导致以下错误:
文件附件或查询结果大小超过允许值1000000字节
我怎样才能提高这个价值?
我正在尝试在Amazon EC2上运行的ubuntu服务器上放置一个裸git存储库.我遇到的困难是从我的本地电脑克隆存储库.
当我尝试:
git clone git@ec2-blah.compute-1.amazonaws.com:/opt/git/project.git
Run Code Online (Sandbox Code Playgroud)
我明白了:
Cloning into project...
Unable to open connection:
Host does not existfatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
然而,我没有任何困难ssh'ing到同一台服务器.例如,以下工作正常:
ssh git@ec2-blah.compute-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
我的想法是,如果这是有效的,那么我可以在客户端和服务器上正确设置我的密钥.因此git clone命令也应该可以工作.
但不是.
我已经研究并尝试了很多变化,但我只是预感到我错过了一些脑死亡的东西.
模型:
class Project < ActiveRecord::Base
has_many :user_roles
after_initialize :add_user_roles
def add_user_roles
UserRoles.all.each do |ur|
self.user_roles << ur unless self.user_roles.include?(ur)
end
end
end
Run Code Online (Sandbox Code Playgroud)
查找项目的声明:
@projects = Project.includes(:user_roles)
Run Code Online (Sandbox Code Playgroud)
所以你可以看到,我告诉它在查询中包含用户角色关联.但是,我仍然看到n + 1查询问题:它为每个项目找到一次角色.
如果我self.user_roles
从回调中删除使用并查看日志,我可以看到它在2个查询中找到项目及其用户角色 - 一个用于项目,一个用于角色使用project_id in (1,2,3,4,5...,n)
.
有办法解决这个问题吗?
让我澄清一点:虽然我愿意在需要时解决我的具体情况,但我更喜欢那些专注于如何解决问题的答案.我能够编写一个kludge来使数据处于我想要的状态而不使用after_initialize回调,因此不会进入n + 1查询问题.但是,我宁愿不这样做,所以我更喜欢一般问题的答案而不是我的具体例子.