标签: sequel

续集选择了太多列

看起来Sequel的默认选择是"select*",当你添加一些连接时会引起各种问题.至少你最终会在对象中出现错误的ID(因为那时会返回多个"id"列).做点什么

.select("people.*")
Run Code Online (Sandbox Code Playgroud)

似乎工作,但它将传入的字符串视为一个列并引用它.到目前为止,我不得不回到裸SQL来解决这个问题,但我知道必须有更好的方法.

ruby sequel

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

如何将heroku数据拉入本地SQLite3数据库?遇到问题

我正在尝试从我的Rails应用程序进行本地备份,该应用程序部署到Heroku,并遇到问题.我按照这里的说明操作:http://docs.heroku.com/taps并安装了Taps.

我有两种类型的错误.我在本地创建了一个SQLite数据库,并尝试使用此命令提取数据:

(sudo)heroku db:pull sqlite://Users/username/folder/testbackup.db

要么

(sudo)heroku db:pull sqlite:// username:password@localhost/Users/username/folder/testbackup.db

但不管怎样,我得到了这个:

无法连接数据库:Sequel :: DatabaseConnectionError - > SQLite3 :: CantOpenException:无法打开数据库:无法打开数据库文件

或者,我尝试让Taps在我的应用程序中自动检测开发数据库并重写它,尽管这不是我想要的.然后我开始得到如下错误:

/opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:777:in report_activate_error': RubyGem version error: sequel(3.15.0 not ~> 3.13.0) (Gem::LoadError) from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:211:in激活'from /opt/local/lib/ruby/site_ruby/1.8/rubygems.rb:1056:in'gem'from/Library /红宝石/宝石/ 1.8 /宝石/水龙头-0.3.10 /斌/架构:4

并最终

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/lib/sqlite3/errors.rb:62:in`check': SQLite3 :: SQLException:PRIMARY KEY必须是唯一的(Sequel :: DatabaseError)

非常感谢,我开始尽快备份这些数据非常重要!

sqlite ruby-on-rails heroku taps sequel

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

heroku db:拉不工作

heroku db:pull postgresql://root:@localhost/db_name
Run Code Online (Sandbox Code Playgroud)

在此命令后显示此消息

/usr/lib/ruby/gems/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb:50:警告:未来版本的parenthesize参数Loaded Taps v0.3.13警告:数据输入数据库'postgresql:// root:@ localhost/db_name'将被覆盖,无法恢复.你确定要继续吗?(Y/N)?y无法连接数据库:Sequel :: AdapterNotFound - > LoadError:没有要加载的文件 - 续集/ adapters/postgresql

如何使用db:pull

ruby postgresql ruby-on-rails heroku sequel

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

续集:如何使用组和计数

简单地说,我如何使用Sequel进行此查询?

select a.id, count(t.id)
from albums a
right join tracks t on t.album_id = a.id
group by a.id
Run Code Online (Sandbox Code Playgroud)

ruby group-by count sequel

6
推荐指数
2
解决办法
2566
查看次数

ruby续集gem-如何使用pg_array扩展名查询数组

我正在使用pg_array扩展和后续版本4.1.1。

我添加了这样的扩展名:

Sequel::Database.extension :pg_array
Run Code Online (Sandbox Code Playgroud)

我创建了这样的一列:

alter_table :emails do
  add_column :references, "text[]", null: true
end
Run Code Online (Sandbox Code Playgroud)

我可以将数组加载和检索到postgress数组列中,就像使用普通数组一样。

从上面的链接尚不清楚的是如何根据此数组列中的值执行查询。

例如,如果电子邮件表中的一行在引用列中包含以下值:

                             references                             
--------------------------------------------------------------------
 {}
 {5363f773bccf9_32123fe75c45e6f090953@Pauls-MacBook-Pro.local.mail}
Run Code Online (Sandbox Code Playgroud)

如何查询电子邮件表以查找包含上述值的引用数组值的行:

Email.where(references: ????)
Run Code Online (Sandbox Code Playgroud)

ruby postgresql sequel

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

使用续集和数据库清理器的外键约束问题

我正在使用数据库清理器续集和sqlite外键约束遇到问题.具体来说,我正在使用:truncationCapybara集成测试的策略.

对于给定的示例模式:

CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE events(id INTEGER PRIMARY KEY, title TEXT);

CREATE TABLE events_users(
  user_id INTEGER,
  event_id INTEGER,

  FOREIGN KEY(user_id) REFERENCES users(id),
  FOREIGN KEY(event_id) REFERENCES events(id)
);
Run Code Online (Sandbox Code Playgroud)

和续集模特:

class User < Sequel::Model
  many_to_many :events
end

class Event < Sequel::Model
  many_to_many :users
end
Run Code Online (Sandbox Code Playgroud)

运行以下内容:

# normally this would be run in
# an rspec before(:each) for my :feature specs
DatabaseCleaner.start
DatabaseCleaner.strategy = :truncation

bob = User.create(name: "bob")
sally …
Run Code Online (Sandbox Code Playgroud)

ruby sqlite sequel database-cleaner

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

如何断开与数据库的现有ruby续集连接?

我的意思是之前建立的那个

DB = Sequel.sqlite('my_blog.db')
Run Code Online (Sandbox Code Playgroud)

要么

DB = Sequel.connect('postgres://user:password@localhost/my_db')
Run Code Online (Sandbox Code Playgroud)

要么

DB = Sequel.postgres('my_db', :user => 'user', :password => 'password', :host => 'localhost')
Run Code Online (Sandbox Code Playgroud)

或等等.

Sequel :: Database类没有名为"disconnect"的公共实例方法,尽管它有"连接"一个.

也许有人已经遇到过这个问题.我很感激任何想法.

ruby sequel

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

如何使用“like”进行续集查询?

我正在尝试实现一个表单来搜索我的帖子标题。

这是控制器代码:

post '/search'  do
@results = Post.all(:Title.like => "%#{params[:query]}%")
erb :layout 
end
Run Code Online (Sandbox Code Playgroud)

这是layout.erb代码:

<form action="/search" method="post">
 <input type="text" name="query"/><br />   
 <input type="submit" />
</form>
<% if @results %>
 <table>
  <%@results.each do |r|%>
  <tr valign="top">
  <td><%=r.Title%></td>
  </tr>
  <%end%>
 </table>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,提示“未定义方法‘类似’:标题:符号”。

ruby sinatra sequel

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

如何在 Sequel 迁移中创建 hstore 列?

如何在 Sequel 迁移中创建 hstore 列?

Sequel.migration do
  change do
    add_column :logs, :geo, HStore
  end
end
Run Code Online (Sandbox Code Playgroud)

失败。我必须加载扩展吗?

ruby migration postgresql sequel hstore

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

关联对象没有主键

使用 Sequel 时,我仍然找不到解决关联工厂问题的解决方案。

我有两个模型依赖于one_to_many,这与has_manyActive Record 中的相同,以及 与 Active Recordmany_to_one中的相同belongs_to

以下是定义的工厂:

FactoryGirl.define do
  to_create { |instance| instance.save }
  factory :post do
    title  "some title"
  end
end

FactoryGirl.define do
  to_create { |instance| instance.save }
  factory :comment do
    content    "some content"
    association :post, strategy: :build
  end
end
Run Code Online (Sandbox Code Playgroud)

运行时build(:comment),它失败了:

Associated object does not have a primary key. 
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?我总是可以先构建/创建一个帖子,然后在评论中签名,但这很乏味。不仅如此,我还必须删除association :post, strategy: :build并使用一些 Integer 随机值。

我正在使用:

  • factory_girl_rails 4.8.0
  • ruby 2.4.0
  • sequel-rails 0.9.15
  • sequel 4.45.0

ruby sequel factory-bot

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