我正在寻找一种方法来查找Postgres中所有表的行数.我知道我可以一次做一张桌子:
SELECT count(*) FROM table_name;
Run Code Online (Sandbox Code Playgroud)
但我希望看到所有表格的行数,然后按顺序排列,以了解我所有表格的大小.
我将从Oracle发布Postgres并寻找一种方法来查找表和索引大小,以字节/ MB/GB /等为单位,甚至更好地查找所有表的大小.在Oracle中,我有一个讨厌的长查询,查看user_lobs和user_segments以回复答案.我假设在Postgres中我可以在information_schema表中使用,但我没有看到.提前致谢.
我是一个vim用户,最近一直在试用emacs以获得乐趣.我发现到目前为止我最缺少的功能是" 超级明星 "(通过键入*找到光标下的单词)功能,我还没有在emacs中找到相应的功能.如果它没有内置,我需要添加到我的emacs文件中以获得类似的东西?
很多时候,人们会编写那些在状态混乱时不会自行清理的测试.通常这并不重要,因为对象往往被拆除并为大多数测试重新创建,但是有一些不幸的情况是对象的全局状态持续整个测试运行,并且当您运行测试时,依赖于并修改那个全球国家,按照一定的顺序,就会失败.
显然需要修复这些测试和可能的实现,但是当相互影响的测试可能不是完整测试套件中的唯一内容时,尝试找出导致失败的原因是很痛苦的.当最初没有清楚故障是依赖于顺序的,并且可能间歇性地或在一台机器而不是另一台机器上失败时,这是特别困难的.例如:
rspec test1_spec.rb test2_spec.rb # failures in test2
rspec test2_spec.rb test1_spec.rb # no failures
Run Code Online (Sandbox Code Playgroud)
在RSpec 1中,有一些选项( - 反向, - loadby)用于订购测试运行,但是这些选项在RSpec 2中已经消失,并且在调试这些问题方面只是极少有用.
我不确定RSpec 1或RSpec 2默认使用的顺序,但我过去使用的一个定制设计的测试套件在每次运行时随机排序测试,以便更快地发现这些故障.在测试输出中,用于确定排序的种子打印了结果,因此即使您必须做一些工作来缩小导致它们的套件中的单个测试,也很容易重现故障.然后有选项允许您按顺序启动和停止任何给定的测试文件,这使您可以轻松地进行二进制搜索以查找问题测试.
我没有在RSpec中找到任何这样的实用程序,所以我在这里问:人们发现调试这些类型的依赖于顺序的测试失败有什么好方法?
我希望任何删除的文本总是进入编号的寄存器,但我经常会在编号的寄存器中找到我最近删除的内容并且它不存在,因为它不到一行.
编号寄存器1包含最近删除或更改命令删除的文本,除非命令指定另一个寄存器或文本少于一行(然后使用小删除寄存器).随着每次连续删除或改变,Vim将寄存器1的先前内容移位到寄存器2,2中为3,依此类推,丢失寄存器9的先前内容.
这是一个相当罕见的事情,但是当它发生时,它真的很烦人,因为我必须撤消到我删除文本的点,然后删除到命名的寄存器或立即使用删除的文本之前它没有注册0因为我在我粘贴我刚刚删除的小文本的路上删除其他东西(流浪空白,坏评论,等等).
我希望小删除条件对于进入编号寄存器1-9的文本无关紧要.有人知道实现这个目标的方法吗?
我Mix.Task在/lib/mix/tasks/start.ex中为我的项目创建了新的
defmodule Mix.Tasks.Start do
use Mix.Task
def run(_), do: IO.puts("Hello, World!")
end
Run Code Online (Sandbox Code Playgroud)
现在,它可以从控制台运行,如下所示:
mix start
但是我得到了Dialyzer的错误Callback info about the 'Elixir.Mix.Task' behaviour is not available.它是什么意思以及如何解决这个问题?
我为Google Chrome创建了一个基本扩展程序,用于更改关闭选项卡时选择了哪个选项卡的行为,以便所选选项卡是您选择的最后一个选项卡,而不仅仅是关闭选项卡之前的选项卡.
我想添加键盘快捷键,并且我已经找到了使用jquery和jquery热键的方法,但我发现的问题是键盘快捷键仅在加载页面时才起作用.因此,例如,如果您打开一个新选项卡而不去任何地方,则快捷键不起作用,因为javascript仅在页面在屏幕上时加载.如果您在选项卡中打开了扩展页面,则会出现同样的问题.
有没有人知道在Chrome扩展程序中使用键盘快捷键的更好方法?我一直在查看扩展文档,但我没有找到任何看起来很有希望的东西.
我有一个厨师食谱的资源,我想成为可选的.也就是说,当配方运行时,如果资源失败,我希望其他所有内容继续运行.我当然还想知道当然这个资源出现了故障,只是它不是一个关键资源而且没有任何依赖它,所以我宁愿继续运行其余部分.
我习惯使用Puppet,你必须明确地声明你的依赖项,只有当它们的依赖项失败而不是一次失败导致文件的其余部分不运行时才会跳过资源.
不知道为什么关闭这个问题并不是一个真正的问题(即使在阅读了常见问题解答之后),但我会添加一些示例代码来说明我在问什么,希望其他人可以投票重新开启或者可以回答.
我正在使用厨师设置开发环境,其中一部分就是克隆一些git repos到位.没有什么取决于他们,偶尔会有一些私人回购,一些开发者无法访问.如果它无法克隆,我希望其他资源继续运行.
因此,对于以下资源:
["foo", "bar", "baz"].each do |repo|
git repo do
repository "git@github.com/example/#{repo}"
reference "master"
action :sync
depth 1
user 'dev'
group 'dev'
destination "#{node[:src_dir]}/#{repo}"
end
end
Run Code Online (Sandbox Code Playgroud)
如果运行它的用户没有克隆foo的权限,我希望foo失败,但bar和baz仍然可以克隆.怎么可能?
我有一条/ping通过负载均衡器和kubernetes运行状况检查在生产中被调用的路由.我想将日志级别设置Plug.Logger为:debug仅适用于该路由.
defmodule Web.Endpoint do
...
forward "/ping", Web.HealthCheck
...
end
defmodule Web.HealthCheck do
use Plug.Router
plug :match
plug :dispatch
get "/" do
send_resp(conn, 200, "ok")
end
end
Run Code Online (Sandbox Code Playgroud)
我没有找到修改或删除现有插件的方法.我尝试添加plug Plug.Logger, log: :debug到Web.HealthCheck,但后来我只是在不同的级别上记录了两次
[info] GET /ping
[debug] GET /ping
Run Code Online (Sandbox Code Playgroud)
我已经找到了一种方法来禁用完全是为一个特定的路线记录除去plug Plug.Logger从endpoint.ex手动加回需要https://elixirforum.com/t/disable-logging-on-specific-route/622,但后来我不得不小心记得确保为我添加的每个新路由启用了日志记录,而且我真的更喜欢将/ping路由设置为调试,以便它可以根据需要登录dev,但在生产中不会如此垃圾.
Rails 的schema.rb是获取数据库状态参考的一种非常方便的方法。我可以直接进入 pg 或 mysql 客户端并描述表以获得相同的信息,但它不太方便。
Elixir / Ecto 是否有类似的功能或方式来生成模式表示?
elixir ×3
postgresql ×2
vim ×2
chef-infra ×1
chromium ×1
count ×1
dialyzer ×1
ecto ×1
editor ×1
emacs ×1
javascript ×1
logging ×1
rspec ×1
rspec2 ×1
ruby ×1
search ×1
testing ×1
unit-testing ×1