Tag: sqlite

轻量级内存数据库

我们的一个需求是创建一个临时内存数据库,然后执行各种插入/选择/更新。 一目了然,SQLite满足了我们所有的需求。 可以建立与内存中SQLite DB的连接,如下所示: class SQLiteBase < ActiveRecord::Base self.abstract_class = true establish_connection(adapter: 'sqlite3', database: ':memory:') end 不久之前,我们已经开始研究一些性能问题,结果发现我们需要在SQLite表中执行批量加载(特别是批量INSERT)数据(参见这些基准测试)。 不幸的是,看起来SQLite不支持批量INSERT。 那么还有其他基于SQL的轻量级内存数据库,它们支持批量INSERT吗? 如果没有这样的 – 有没有办法利用重量级数据库,如PostreSQL(MySQL或任何其他主要播放器)作为内存数据库 ? 如果postresql / mysql不是一种可行的方式 – 是否有任何其他C-heavy优化的数据结构,并在其上面使用查询语言? (有/没有ruby绑定)。

SQL查询顺序问题

所以我在activerecord中有以下模型,我将使用Discussion.user_replied_group_discussions(@user)它返回最近回复的讨论好,但是如何修改私有方法以按最新回复时间订购返回的讨论? # Table name: discussions # # id :integer not null, primary key # title :string(255) not null # content :text(255) not null # created_at :datetime # updated_at :datetime # user_id :integer # discussable_id :integer # discussable_type :string(255) class Discussion :commentable, :dependent => :destroy # #this is the scope that I am having trouble with: […]

使用OR和AND搜索多个列以应用filter

我正在开发一款应用。 我试图植入一个搜索系统。 方法很简单。 在家里,我在3栏“name”或“nomdep”或“nomregion”上搜索查询。 在此之后,我想用AND运算符用params过滤。 如果我只使用一列植入搜索,例如“NAME”,那么我可以应用filter。 但如果我想用多个OR植入这个,我不能应用filter。 我认为OR运算符是问题所在。 但我肯定不知道要解决这个问题…… 你能帮助我吗 ? 谢谢 camping.rb has_many :caracteristiquetests, :foreign_key => :camping_id has_many :situations, :foreign_key => :camping_id def self.searchi(query, handicap, animaux, television, plage, etang, lac) return scoped unless query.present? left_outer_joins(:caracteristiquetests, :situations).where([‘nomdep LIKE ? OR name LIKE ? OR nomregion LIKE ? AND handicap LIKE ? AND animaux LIKE ? […]

Rails,SQLException:没有这样的列

重新检查代码,重新启动计算机,然后运行rake db:migrate,我不知道还有什么可以做的。 我一直收到以下错误: SQLite3::SQLException: no such column: uploads.user_id: SELECT COUNT(*) FROM “uploads” WHERE “uploads”.”user_id” = 1 Extracted source (around line #12): 9: 10: 11: 12: 13: Uploads () 14: 15: 这与has_many关联有什么关系吗? show.html.erb Uploads () upload.rb class Upload < ActiveRecord::Base attr_accessible :title belongs_to :user validates :title, presence: true validates :user_id, presence: true default_scope order: 'uploads.created_at DESC' […]

Rails中的时间字段空白

我有一个在Sqlite3上运行的简单Rails 3.b1(Ruby 1.9.1)应用程序。 我有这张桌子: create_table :time_tests do |t| t.time :time end 我看到这种行为: irb(main):001:0> tt = TimeTest.new => # irb(main):002:0> tt.time = Time.zone.now => Mon, 03 May 2010 20:13:21 UTC +00:00 irb(main):003:0> tt.save => true irb(main):004:0> TimeTest.find(:first) => # 所以,时间又回来了。 检查表,数据看起来没问题: sqlite> select * from time_tests; 1|2010-05-03 20:13:21.774741 我想这是在检索部分? 这里发生了什么?

如何在sqlite中存储json数据

我很难将数据作为’JSON’格式存储到我的sqlite数据库中以用于rails应用程序。 我已经搜索了如何在我的sqlite数据库中将数据存储为JSON,但我没有看到许多有前景的替代方案。 谁可以指导我如何做到这一点?

Solr,Sunspot,SQlite和Rails

我想为使用SQlite3作为数据库的项目实现全文搜索+分面。 我听说Solr非常强大。 有Sunspot和Solr教程可用,但仅适用于MySQL。 我找不到任何关于如何为SQLite3设置它的文档。 有人知道如何使用SQLite3进行设置吗? 或者这不可能吗?

ActiveRecord :: StatementInvalid:找不到表

我运行rake db:migrate,schema.rb看起来正确,当我在rails dbconsole中运行.tables时,我可以看到我正在寻找的表。 我以前做过回滚,但最后我运行了rake db:reset。 还有其他想法吗? Rails 4,Ruby 1.9.3 schema.rb: `ActiveRecord::Schema.define(version: 20130501043644) do create_table “playlists”, force: true do |t| t.string “name” t.datetime “created_at” t.datetime “updated_at” end create_table “songs”, force: true do |t| t.string “name” t.string “artist” t.string “soundcloud” t.datetime “created_at” t.datetime “updated_at” end create_table “songs_playlists”, id: false, force: true do |t| t.integer “song_id” t.integer “playlist_id” […]

有效地在同一模型上执行多个查询

我已经绕圈子试了几天试图解决我过去一直在努力解决的问题。 基本上它是理解在模型上执行多个查询的最佳(或有效)方法的问题,因为我经常查找我的页面加载非常慢。 考虑一下你有一个名为Everything的模型的情况。 最初,您执行查询,在Everything查找符合特定条件的记录 @chosenrecords = Everything.where(‘name LIKE ?’, ‘What I want’).order(‘price ASC’) 我想记住@chosenrecords的内容,因为我会将它们作为列表呈现给用户,但是,我还想了解更多@chosenrecords的属性,例如 @minimumprice = @chosenrecords.first @numberofrecords = @chosenrecords.count 当我在我的控制器中使用上面的代码并检查本地服务器上的命令历史记录时,我很惊讶地发现三个查询中的每一个都涉及原始Everything模型上的SQL查询,而不是记住@chosenrecords返回的记录。对此执行查询。 这对我来说效率非常低,实际上三个查询中的每一个都需要相同的时间来处理,从而使页面执行缓慢。 我在使用MATLAB等软件编写代码时更有经验,一旦你计算了变量的值,就可以在本地存储并快速查询,而不是在每次想要了解更多信息时重新计算该变量。 请问你能指导一下我是否完全走错了轨道,而且我发现的问题只是“它是如何在Rails中”,或者我是否可以做些什么来改进它。 我已经研究过像使用作用域,定义不同的变量类型和缓存这样的概念,但我不太清楚我在每种情况下做了什么,并且最终会陷入类似的漏洞。 谢谢你的时间

在Windows上安装SQLite3 for Ruby – 目前最简单的路线是什么?

对于Ruby来说,这是全新的,希望让Redmine在WinServer08 sp1上运行 我在这里阅读了一些线程,详细介绍了让Ruby和SQLite相互配合所需的步骤和变通方法。 Ruby将运行… sqlite3的.dll和api在指定的目录中……我重新启动但是rake -test失败了。 我想知道是否有一个明确的循序渐进,汇总了所涉及的各种包的先前解决方法。 – 太多了! C:\Ruby>rake -test –trace rake aborted! undefined local variable or method `st’ for # C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2217:in `standard_rake_opt ions’ C:/Ruby/lib/ruby/1.8/optparse.rb:1291:in `eval’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2217:in `standard_rake_opt ions’ C:/Ruby/lib/ruby/1.8/optparse.rb:1291:in `call’ C:/Ruby/lib/ruby/1.8/optparse.rb:1291:in `parse_in_order’ C:/Ruby/lib/ruby/1.8/optparse.rb:1247:in `catch’ C:/Ruby/lib/ruby/1.8/optparse.rb:1247:in `parse_in_order’ C:/Ruby/lib/ruby/1.8/optparse.rb:1241:in `order!’ C:/Ruby/lib/ruby/1.8/optparse.rb:1332:in `permute!’ C:/Ruby/lib/ruby/1.8/optparse.rb:1353:in `parse!’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2313:in `handle_options’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2009:in `init’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exceptio n_handling’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2007:in `init’ C:/Ruby/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1999:in `run’ […]