小编Man*_*rer的帖子

从具有多个数据库的实例复制单个 Redis 数据库

我有一个包含两个数据库的 Redis 实例。现在我想设置第二个实例并复制第一个实例,但第二个实例应该只有一个数据库并且只从第一个实例复制 db 0。当我尝试这样做(slaveof ...为第二个实例设置)时,我在 Redis 日志文件中收到以下错误消息:

FATAL: Data file was created with a Redis server configured to handle more than 1 databases. Exiting
Run Code Online (Sandbox Code Playgroud)

我尝试使用redis-dump,但是当我尝试将生成的转储导入新实例时出现错误。(我认为与 2 dbs 和 1 db 无关,而是 redis-dump 中的一个错误,它仍处于 alpha 阶段。

该怎么办?

database-replication redis

5
推荐指数
1
解决办法
6327
查看次数

类是必需的,但无法访问

我有一个非常奇怪的错误,我无法解开.

基本上,我在我的lib文件夹中有这个类:

# lib/api/amazon.rb
module API
  class Amazon
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

当我想在某个地方使用它时,我require:

require 'api/amazon'
API::Amazon.do_stuff
Run Code Online (Sandbox Code Playgroud)

这最初是有效的,但过了一段时间它会破坏和提升NameError: uninitialized constant API::Amazon.当我调试它并require在引发错误时再次尝试该文件时,它返回false,表明该文件已经加载.我也可以在$"(这个加载文件列表)中看到它.为什么我不能访问API::Amazon

注意:我添加了"API"作为首字母缩略词,ActiveSupport::Inflector这就是为什么我不必使用"Api":

# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym 'API'
end
Run Code Online (Sandbox Code Playgroud)

编辑:

我也尝试::API::Amazon.do_stuff过,结果相同.

ruby ruby-on-rails require nameerror

5
推荐指数
1
解决办法
197
查看次数

Rails 7.1,记录到 STDOUT 和 log/Production.log

在新的 Rails 7.1.2 应用程序中,可以在以下位置找到以下行config/environments/production.rb

config.logger = ActiveSupport::Logger.new(STDOUT)
  .tap  { |logger| logger.formatter = ::Logger::Formatter.new }
  .then { |logger| ActiveSupport::TaggedLogging.new(logger) }
Run Code Online (Sandbox Code Playgroud)

这告诉 Rails 记录器记录到STDOUT.

我想配置它,以便它也记录到log/production.log,但我无法弄清楚我的一生......

在 Fly.io 的这篇文章中,它说添加这些行:

logger = ActiveSupport::Logger.new(STDOUT)
logger.formatter = config.log_formatter
volume_logger = ActiveSupport::Logger.new("/logs/production.log", 3)
logger = logger.extend ActiveSupport::Logger.broadcast(volume_logger)
Run Code Online (Sandbox Code Playgroud)

但这些说明似乎适用于 Rails < 7.1,因为我收到错误NoMethodError: undefined method 广播' for ActiveSupport::Logger:Class`。

我如何在 Rails 7.1 中做到这一点?

logging ruby-on-rails ruby-on-rails-7

5
推荐指数
1
解决办法
1272
查看次数

查询 Postgres 以获取 JSON 中的项目数

我正在运行 Postgres 9.3 并且在涉及我似乎无法破解的 JSON 列的查询时遇到问题。

让我们假设这是表:

# CREATE TABLE aa (a int, b json);
# INSERT INTO aa VALUES (1, '{"f1":1,"f2":true}');
# INSERT INTO aa VALUES (2, '{"f1":2,"f2":false,"f3":"Hi I''m \"Dave\""}');
# INSERT INTO aa VALUES (3, '{"f1":3,"f2":true,"f3":"Hi I''m \"Popo\""}');
Run Code Online (Sandbox Code Playgroud)

我现在想创建一个查询,该查询返回在 JSON 列的根节点(即第 2 行和第 3 行)中恰好具有三个项目/键的所有行。JSON 是否嵌套并不重要。

我尝试使用json_object_keysjson_each但无法使其正常工作。

postgresql json postgresql-9.3

3
推荐指数
1
解决办法
2120
查看次数

如何聚合 Postgres 数组中多条记录的所有数组值?

我有一个充满记录的表和一个数组列,现在我想获得该列中所有(唯一)值的列表。获得它的最佳方法是什么?

我试图玩弄unnestarray_aggstring_agg却没有取得任何进展......

(使用 Postgres 9.2)

arrays postgresql

2
推荐指数
1
解决办法
1592
查看次数

Postgres pg_dump版本不匹配...即使版本相同

我正在尝试从Amazon RDS转储Postgres数据库,我最近更新到10.1.为此,我pg_dumpentrepreneedb.com(http://get.enterprisedb.com/postgresql/postgresql-10.1-1-linux-x64-binaries.tar.gz)下载10.1,但当我尝试使用它时,我得到了以下错误:

pg_dump: server version: 10.1; pg_dump version: 10.1
pg_dump: aborting because of server version mismatch
Run Code Online (Sandbox Code Playgroud)

这在RDS版本9.6和我使用pg_dump9.6(从同一位置下载)之前工作正常.

我尝试了更新版本的pg_dump(10.2和10.3),但得到了同样的错误(这是有道理的,因为那些较新的版本实际上与RDS版本不匹配).

我还检查了pg_dump我的服务器上没有安装其他设备(Ubuntu 15.04 - 我知道我应该更新......等待18.04),找到一个并删除它,但得到同样的错误.

这可能是什么问题?

postgresql pg-dump postgresql-10

1
推荐指数
1
解决办法
3637
查看次数