问题标签 [sequel]
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.
ruby - 'Sequel::Error: id is a restricted primary key' 使用 Sequel 创建记录时
我有一个基于 Sequel 和 Oracle 适配器的模型:
如果我尝试使用 Oracle 的 sequence.nextval 作为主键创建记录:
我有错误:Sequel::Error: id is a restricted primary key
。在这种情况下创建记录或将 Oracle 的序列“映射”到id
列的正确方法是什么?或者,我必须使用unrestrict_primary_key
?
ruby - 如何使用 Sequel 递归地保存模型?
我一直在玩 Sequel 和 Sequel::Model。
Group
我用很多Items
(one_to_many)创建了一个。
我可以:
但不是:
也不:
它抱怨Group
没有主键。
如果我 save group
,它已保存但项目未保存。
如何递归保存所有内容?
ruby - 从表名中查找模型名(Sequel ORM)
在 ruby 脚本中,我正在运行一个循环,在该循环中,我从表列表中动态获取表名,并且必须对其执行某种 CRUD 操作(主要是插入)。我正在使用 Sequel Orm 并为各种表格创建了模型。如何找到每个表的模型名称以便执行插入?
我可以使用散列来存储每个表的模型名称,或者可以遵循将每个表的第一个字符转换为大写或类似的模式。
有一个更好的方法吗?
ruby - 方法名称的 Ruby 字符串错误:未定义的方法 `call=' for #(无方法错误)
我必须在对象 obj 上动态调用方法列表。我正在尝试实例化一个方法对象,然后调用它。
method_name(字符串)是可以在对象 obj 上调用的方法的名称。
我收到以下错误:
# (NoMethodError) 的未定义方法 `call='
我正在使用 Sequel ORM 并且必须动态保存模型关联。如果我直接调用 method_name (当 method_name 不是字符串时),则以下工作
然而,当 method_name 是一个字符串时,下面给出了一个语法错误:
语法错误,意外的 '=',需要关键字 end
因此,我无法使用上述任何一种方式以字符串形式从它们的名称中调用方法。
ruby - 如何在 Sequel 中使用 SQL 数组切片进行排序?
Sequel中按 SQL 数组值的切片排序的正确语法是什么?
这是我想在 SQL 中执行的操作:
在续集中,我可以这样做:
但这按所有的排序:a
,而不是[0:depth]
所需的切片。什么是正确的语法?
ruby - 如何在 Sequel 数据集上更新或插入?
我刚开始在一个非常小的 Sinatra 应用程序中使用 Sequel。由于我只有一个数据库表,我不需要使用模型。
如果记录存在,我想更新记录,如果不存在,我想插入新记录。我想出了以下解决方案:
$nums
数据集在哪里DB[:numbers]
。
我相信这种方式不是“更新或插入”行为的最优雅的实现。
应该怎么做?
ruby - 从 war 文件中运行 rake 任务
我的代码库最初是用 ruby 编写的。它有一个rakefile.rb
文件来执行数据库迁移。后来我把整个东西都改成了 jruby,以便于部署,效果很好。我面临的唯一问题是如何运行我的 rake 任务(执行数据库迁移)。
我试过
1 是版本,但这不起作用。
这给了我:
任何帮助将不胜感激
-谢谢
ruby - MSSQL-Server/ruby-gem 续集:如何读取 UTF-8 值?
我使用ruby-gem sequel从 MSSQL-Server 表中读取 utf-8 编码的数据。表的字段定义为nvarchar
,它们在 Microsoft Server Management Studio 中看起来是正确的(西里尔文是西里尔文,中文看起来是中文)。
我将我的数据库连接到
这适用于英语,德语也返回一个可用的结果:
但转换成的结果CP850
,却不是原来的UTF-8
。
西里尔文(我用保加利亚语测试过)和中文只产生“?” (合理,因为CP850
不包括中文和保加利亚字符)。
我还通过 odbc-connection 进行了连接:
结果是ASCII-8BIT
,我必须将数据转换force_encoding
为 CP1252(不是 CP850!)。但是西里尔文和中文仍然是不可能的。
我已经尝试过的:
- MySQL 适配器似乎有一个编码选项,我检测到 MSSQL 没有效果。
- 我用 sqlite 和 sequel 做了类似的测试,我对 unicode 没有问题。
- 我安装
SQLNCLI10.dll
并使用它作为提供者。但我得到一个无效的连接字符串属性-error(与 相同sqlncli
)。
所以我的最后一个问题是:如何通过 ruby 和 sequel 读取 MS-SQL 中的 UTF-8 数据?
我的环境:
客户:
- Windows 7的
- 红宝石 1.9.2
- 续集 3.33.0
数据库:
- SQL 服务器 2005
- 数据库有排序规则 Latin1_General_CI_AS
准备好我的问题后,我找到了解决方案。我会将其发布为答案。但我仍然希望,有更好的方法。
ruby - 是否存在续集模型生成器?
我正在寻找一个 ruby 类,它可以在读取 mySQL 数据库中表的定义后为 Ramaze 生成续集模型文件。例如,我想输入:
ruby mySuperGenerator.rb "mytable"
结果应该是“model”目录中的文件“mytable.rb”,其中包含:
有人知道这样的发电机是否存在吗?
ruby - Datamapper 在续集中的 first_or_create 等价物?
是否有实现 Datamapperfirst_or_create
方法的原生 Sequel 方式?
还是我必须结合选择和插入?