Tag: sqlite3

Rails SQL正则表达式

我正在尝试搜索A0001,A0002,A1234,A2351等系列中的最大数字…问题是我搜索的列表也有字符串,如AG108939,E092357,AL399,22-30597等等…… 所以基本上,我想在我的数据库中获得最高的####值。 我使用以下查询: @max_draw = Drawing.where(“drawing_number LIKE ?”, “A%”) 这种情况一直有效,直到像AG309这样的数字开始受阻,因为它以A开头,但格式与我正在寻找的格式不同。 我假设这对于正则表达式应该非常简单,但我是新手,并且不知道如何使用正则表达式正确编写此查询。 以下是我试过的一些东西,只需返回nil: @max_draw = Drawing.where(“drawing_number LIKE ?”, /A\d+/) @max_draw = Drawing.where(“drawing_number LIKE ?”, “/A\d+/”) @max_draw = Drawing.where(“drawing_number LIKE ?”, “A[0-9]%”)

升级到OS Sierra后,Rails的分段错误,可能与sqlite3 gem有关

升级到OSX Sierra后,我遇到了随机分段错误的问题。 它最常出现在运行rails测试时,我相信它是由sqlite3_adapter引起的。 我目前的工作是简单地退出终端并重新启动它。 这适用于大约1或2个轨道测试,而第三个我几乎可以保证得到另一个分段故障。 是否有其他人遇到此问题或找到更好的解决方法? $ rails t Running via Spring preloader in process 13817 /Users/USER/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/sqlite3_adapter.rb:27: [BUG] Segmentation fault at 0x00000000000110 ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16] 编辑 : 在深入研究sqlite3_adapter.rb后,我发现导致分段错误的行是创建新的SQlite3数据库。 db = SQLite3::Database.new( config[:database].to_s, :results_as_hash => true ) 编辑2 : 我没有退出并重启终端,而是发现运行: spring stop 暂时停止问题。 不是解决方案,而是更好的解决方案。 编辑3 : 这似乎是Apple提供的libsqlite3不是叉安全的问题。 更多信息可以在这里找到: https://github.com/sparklemotion/sqlite3-ruby/issues/195 现在,我在〜/ .bashrc文件的底部创建了一个别名: alias ss=’spring […]

SQLite3错误 – 无法回滚 – 没有事务处于活动状态

已解决(见下文) 当我试图在我的Ruby on Rails应用程序(或在控制台中)创建或销毁记录(在SQLite3上运行)时,我得到一个SQLexception: irb(main):014:0> ApiCache.all => [] irb(main):015:0> ApiCache.create(:hash => ‘qwe’, :contents => ‘asd’) SQLite3::SQLException: cannot rollback – no transaction is active from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/sqlite3-1.3.3-x86-mingw32/lib/sqlite 3/database.rb:97:in `close’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/sqlite3-1.3.3-x86-mingw32/lib/sqlite 3/database.rb:97:in `prepare’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/sqlite3-1.3.3-x86-mingw32/lib/sqlite 3/database.rb:134:in `execute’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/sqlite3-1.3.3-x86-mingw32/lib/sqlite 3/database.rb:517:in `rollback’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activerecord-3.0.6/lib/active_record /connection_adapters/sqlite_adapter.rb:168:in `rollback_db_transaction’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activerecord-3.0.6/lib/active_record /connection_adapters/abstract/database_statements.rb:176:in `transaction’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activerecord-3.0.6/lib/active_record /transactions.rb:207:in `transaction’ from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activerecord-3.0.6/lib/active_record /transactions.rb:290:in `with_transaction_returning_status’ […]

无法加载’active_record / connection_adapters / sqlite3_adapter’

我正在尝试在我的笔记本上安装ROR(Debian Wheezy 64位)。 首先,我遇到了这个问题( 在这里输入链接描述 ),由第一个答案解决了。 现在rails服务器启动了,但是在localhost:3000浏览器上我收到以下错误: 无法加载’active_record / connection_adapters / sqlite3_adapter’。 确保config / database.yml中的适配器有效。 如果您使用“mysql”,“mysql2”,“postgresql”或“sqlite3”以外的适配器,请将必要的适配器gem添加到Gemfile中。 我已经安装了ruby 2.0.0编译源代码,没有错误或错误。 然后我安装了一些需要的库(sqlite3,libsqlite3-dev)…… 这是我的GemFile: ‘https://rubygems.org’ -# Bundle edge Rails instead: gem ‘rails’, github: ‘rails/rails’ gem ‘rails’, ‘4.0.0’ -# Use sqlite3 as the database for Active Record gem ‘sqlite3’ -# Use SCSS for stylesheets gem ‘sass-rails’, ‘~> 4.0.0’ -# Use […]

SQLite3和Postgres / Heroku Ruby on Rails查询问题

我试图通过加入我的数据库中的两个表来进行查询。 查询在localhost(由SQLite3支持的数据库)中完美地工作,但是当它将它推送到heroku服务器(使用postgres)时,它不再起作用。 我尝试了一些方法并且它可以工作,但它们都适用于本地。 在我的控制器中,我有 @user = User.find(params[:id]) 我试图通过使用不同的方法查询以下语句并返回相同的结果。 以下是我尝试过的不同方法。 所有这些都完全适用于SQLite3,但不适用于Postgres的Heroku。 @locations_user_rated = Location.joins(‘INNER JOIN rates’).where(“rates.rateable_id = locations.id AND rates.rater_id =?” , 2) (假设当前用户ID = 2) @locations_user_rated = Location.joins(‘INNER JOIN rates’).where(“rates.rateable_id = locations.id AND rates.rater_id =?” , User.find(params[:id])) @locations_user_rated = Location.joins(‘INNER JOIN rates’).where(“rates.rateable_id = locations.id AND rates.rater_id =?” , @user) @locations_user_rated = Location.joins(‘INNER JOIN rates’).where(‘rates.rater_id’ => […]

如何从SQLite3切换到Postgres以在Heroku上部署

我的初始数据库是SQLite 3,但是heroku不支持它,我必须切换到PostgreSQL。 我试图在gemfile中使用gem,但部署仍然失败。 这是我的gemfile: source ‘https://rubygems.org’ gem ‘postgres’, ‘~> 0.8.1’ group :development, :test do gem ‘sqlite3’ end 部署日志中的摘录显示失败的内容: … Bundled gems are installed into ./vendor/bundle. remote: Post-install message from rdoc: remote: Depending on your version of ruby, you may need to install ruby rdoc/ri data: remote: = 1.9.2 : nothing to do! Yay! remote: Post-install […]

安装sqlite3时发生导轨应用程序错误导致Heroku错误,并且Bundler无法继续

我试图将我的rails应用程序推送到heroku并收到如下错误: – Counting objects: 177, done. Delta compression using up to 2 threads. Compressing objects: 100% (161/161), done. Writing objects: 100% (177/177), 44.73 KiB, done. Total 177 (delta 39), reused 0 (delta 0) —–> Heroku receiving push —–> Ruby/Rails app detected —–> Installing dependencies using Bundler version 1.2.1 Running: bundle install –without development:test –path vendor/bundle […]

无法在Windows上加载此类文件 – do_sqlite3 / 2.0 / do_sqlite3

据我所知,我已经正确安装了所有东西,但是我仍然无法运行我的程序。 要清楚,这是在linux上编写的,我现在正试图在Windows机器上运行它。 我有以下gem清单: *** LOCAL GEMS *** addressable (2.2.7, 2.2.6) akami (1.2.2) backports (3.6.0) bcrypt (3.1.7 x64-mingw32) bcrypt-ruby (3.1.5 x64-mingw32) bigdecimal (1.2.0) builder (3.2.2, 3.1.4) bundle (0.0.1) bundler (1.6.2) daemons (1.1.9) data_mapper (1.2.0) data_objects (0.10.14) dm-aggregates (1.2.0) dm-constraints (1.2.0) dm-core (1.2.0) dm-do-adapter (1.2.0) dm-migrations (1.2.0) dm-serializer (1.2.2) dm-sqlite-adapter (1.2.0) dm-timestamps (1.2.0) dm-transactions (1.2.0) dm-types (1.2.2) […]

GroupingError:ERROR:列必须出现在GROUP BY子句中或用于聚合函数

我的控制器中的代码是按最高平均评价等级排名的专辑(此解决方案中使用的代码如何通过has_many评论关系显示评分最高的专辑 ): @albums = Album.joins(:reviews).select(“*, avg(reviews.rating) as average_rating”).group(“albums.id”).order(“average_rating DESC”) 这段代码在我的开发环境(sqlite3)中运行得很好,但是当我将代码推送到heroku和postgresql时,我遇到了这个错误: PG::GroupingError: ERROR: column “reviews.id” must appear in the GROUP BY clause or be used in an aggregate function 我意识到这是一个相当普遍的问题,我对SQL有点缺乏经验,所以我在重构代码时遇到了麻烦,因此它可以在我的开发和生产环境中工作。

由于sqlite3 gem错误,Heroku部署失败

我刚刚开始阅读Michael Hartl撰写的ruby.railstutorial.org书,并一直在完成第一章。 我正在使用mac book OS X,Terminal和Sublime Text。 一切都按计划进行,直到测试部署到Heroku为止。 我能够连接到Heroku并运行$ git push heroku master命令。 但部署失败: Installing sqlite3 (1.3.5) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb checking for sqlite3.h… no sqlite3.h is missing. Try ‘port install sqlite3 +universal’ or ‘yum install sqlite-devel’ and check your shared library search path (the location […]