问题标签 [sequel-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
495 浏览

ruby - 如何在批量更新中使用 Sequel Gem 返回更新的记录

我正在使用Sequel gem 批量更新 MySql 中的用户。

根据Sequel 文档

“更新 [和删除] 应该返回受影响的行数......”

所以上面的行为是预期的,但我的问题是,我怎样才能让 Sequel gem 返回更新的记录而不是受影响的记录数?

我期待这种行为:

0 投票
2 回答
227 浏览

ruby - 后续关系和 SQL 函数

我正在使用 Ruby Sequel,我需要找到客户自特定日期以来花费的总金额。此代码有效:

但是,我想知道是否有一种方法可以使用 Customer 和 Purchases 之间的 Model 关系,而不是使用 where 子句来查找 Purchases,以便代码看起来更清晰。

我在想类似的东西,customer.Purchases.where(...).sum(...)但它不起作用。

知道是否有办法做到这一点?

0 投票
2 回答
273 浏览

mysql - 跨多个列的后续唯一验证

我正在尝试使用 Sequel gem 和 MySQL 数据库添加validates_unique验证。

column2如果 的值与 中的现有值匹配,我希望它验证失败column3,因此类似于以下(非工作)示例:

这是一个sqlfiddle,我在其中使用此查询来获得所需的结果:

我正在努力将其映射到续集验证。任何指导表示赞赏。

0 投票
2 回答
195 浏览

ruby-on-rails - Rails 4.2 Sequel Model - 新的 Form_for 没有按预期工作

我创建了一个新的 Rails 4.2 项目,按照文档设置 Sequel Gem 并运行以下命令来设置项目的第一部分:

根据阅读 Stackoverflow 和一些 Google 链接,我的模型骨架如下所示:

控制器是库存/尚未修改。当我转到http://localhost:3000/authors/时,一切都按预期工作。

但是,当我单击http://localhost:3000/authors/new “新作者”链接时,我收到以下错误:

显然,这是不正常的行为;不应在“新”请求上调用“显示”。

我创建了一个新项目,没有使用sequel-rails gem 和相关配置(使用默认的 ActiveRecord),并且完全相同的代码按预期工作而没有错误。

我花了几个小时进行搜索,但找不到解决方案。我已经擦除了项目并重新启动,并且可以一致地重现所描述的行为。

我知道我可以放弃sequel-gem并回到 AR,但我真的不想这样做。

我很感激在正确的方向上解决这个问题。提前致谢。

0 投票
2 回答
151 浏览

ruby - 使用 Sequel gem 的自定义表映射

一直在转动我的轮子。如何使用 sequel gem 指定自定义表映射?

我做了以下

初始化.rb

我的模型.rb

它抱怨构造函数中的“myschema.MyModelTable”。我也试过 set_dataset('myschema.MyModelTable') 没有成功。

文档似乎对如何做到这一点有点不透明

0 投票
1 回答
241 浏览

ruby-on-rails - 关注点的后续验证

我有一个这样的续集模型:

在这里我遇到了一个问题:Notificatable验证方法覆盖了User模型中的相同方法。所以没有:name验证。

我该如何解决?谢谢!

0 投票
1 回答
1297 浏览

ruby - Ruby 的简单本地数据库解决方案?

我正在尝试编写一个简单的 Ruby/Nokogiri 刮板来从多个页面获取事件信息,然后将其输出到附加到每周发送的电子邮件的 CSV 中。

我已经完成了抓取组件和 CSV 组件,并且运行良好。但是,我现在意识到我需要知道何时添加了新事件,这意味着我需要某种数据库。理想情况下,我只会将其存储在本地。

我已经尝试过使用 ruby​​ gem 'sequel',但数据似乎并没有在程序运行之后持续存在。我是否需要下载一些数据库软件才能使用“续集”?另外我没有使用 Rails 框架,只是使用 Ruby。

任何和所有的指导都深表感谢!

0 投票
3 回答
752 浏览

ruby - 如何从 Sequel 迁移生成 SQL 语句

我想将生成的 SQL 语句从 Sequel 迁移输出到文件,而无需连接到实际数据库。我需要这个,因为我想以 MySQL 形式导出语句,但我通常使用 PostgreSQL。

我可以在创建数据库时尝试使用该选项设置 MySQL 和输出-E,但这不应该是正确的工作方式吗?

我需要的是这样的:

我正在使用带有 迁移的Sequel

有没有办法做到这一点?

根据答案进行试验

我尝试了命令提出的Jeremy Evans的答案:

sequel -m db/migrations/ -t -E mock://mysql

错误如下输出:

不幸的是,它似乎试图从模拟数据库中访问一些东西。

更新

有了 Jeremy 的回答,我有一些东西可以使用,我想出了以下 hacky 解决方法,它至少会生成大部分语句,但不是全部 :( :

  • 问题sequel -m db/migrations/ -t -E mock://mysql > mysql-statements.sql
  • 如果你得到一个例外,请在后续代码中注释掉 raise 语句
  • 在 处,您将获得带有正确 sql 语句的输出,但带有额外的日志记录信息
  • 通过使用一些替换工具或更容易使用 sublime 或 atom 等多光标编辑器删除这些额外信息
  • 将分号放在行尾
  • 现在你有正确的 mysql 语句
  • 不要忘记恢复对 sequel-gem-code 的修改;)
0 投票
1 回答
1363 浏览

ruby - Sequel 上带有 database_cleaner 的 Rspec 导致外键截断错误

我正在以下 Sequel 模型上使用 DatabaseCleaner 运行 RSpec 测试

当我运行测试时,我收到以下错误:

我的 DatabaseCleaner 设置是:

DatabaseCleaner 应该在截断之前取消设置外键约束,就像使用 ActiveRecord 一样,它工作正常。

我的问题是:这是 DatabaseCleaner-Sequel 错误还是与我使用 Sequel many_through_many 插件有关?

0 投票
1 回答
367 浏览

ruby - Ruby Sequel 迁移正在运行,但无法添加列

我正在为我的数据库(基本版)使用 Heroku Postgres 插件。Ruby Sequel 是我用于模式管理的 ORM。

最近,一些迁移​​没有更新数据库模式。

我运行迁移 19, 019_add_last_unique_story_to_user.rb:

这会将 DB[:schema_info] 从版本 18 更新到 19,但不会将任何列添加到 :state_table 表中。生产数据库和本地数据库都存在此问题。我已尝试多次迁移并检查数据库 url 是否正确。

我的快速修复:我将上述代码复制并粘贴到第 20次迁移 020_test.rb 中,然后运行我的 rake 迁移任务rake db:migrate:up。这成功地更新了数据库。

有谁知道这里会发生什么?为什么有些迁移运行成功,更新了迁移版本,却没有更新任何列?这可能是命名问题、缓存问题还是 Heroku 问题?谢谢你的帮助!