Tag: sqlite3 ruby

如何在Mac雪豹中安装sqlite3的ruby界面?

我尝试按如下方式安装它,但它会引发错误: – “sudo gem install sqlite3-ruby” Building native extensions. This could take a while… ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb mkmf.rb can’t find header files for ruby at /System/Library/Frameworks/Ruby.framework/ Versions/1.8/usr/lib/ruby/ruby.h Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.1 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-ruby-1.3.1/ext/sqlite3/gem_make.out 有关我的系统的一些信息: – ruby -v 1.8.7 […]

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 我想这是在检索部分? 这里发生了什么?

Rails 3.2.4 SQL查询是在find(:all)上缓存结果

我不确定这个系统是否缓存数据,但它有一些缓存的特性。 基本上我搞乱了rails 3.2.4,系统开始没有显示一些结果。 我认为这是露水到我放入代码模型的默认范围,但即使如此,这应该显示所有结果而不是10个中的9个。但是我总是会丢失我创建的新记录以及我创建的任何其他记录那个记录。 我检查我的sqlite3数据库,看看数据是否放在那里,并检查所有连接信息,同时确保缓存已关闭。 但是,如果我更改了任何模型文件或控制器文件然后保存它,我可以显示数据。 甚至不会改变代码只是触摸命令会做的伎俩。 我认为这与范围有关,但我不能完全确定。 我找到的一个解决方案就是回到Rails 3.2.2。 接缝就可以了。 但是我仍然不喜欢像我刚刚介入的那样感到沮丧。 development.rb # Show full error reports and disable caching config.consider_all_requests_local = true config.action_controller.perform_caching = false house.rb class House ‘created_at DESC’, :limit => 50 validates_presence_of :name has_many :roomies end schema.rb ActiveRecord::Schema.define(:version => 20120601204050) do create_table “houses”, :force => true do |t| t.string “name” t.datetime […]

雪豹升级 – >重新安装sqlite3-ruby gem问题

我得到了ruby 1.8.7(本机编译),rails 2.3.4,OSX 10.6.2以及sqlite3-ruby。 我访问rails应用程序时遇到的错误是 NameError:未初始化的常量SQLite3 :: Driver :: Native :: Driver :: API 历史 : 我通过使用FW-cable从我的旧macbook迁移我的应用程序升级到雪豹。 一切都运行了好几个月,但昨天我需要安装watir,这取决于rb-appscript,由于libsqlite3.dylib中的“错误的架构”错误而无法构建。 我认为构建是在旧机器上进行的,所以我想重建sqlite3-ruby: $ sudo gem uninstall sqlite3-ruby $ sudo gem install sqlite3-ruby 构建原生扩展。 这可能需要一段时间…… 错误:安装sqlite3-ruby时出错: 错误:无法构建gem原生扩展。 / usr / local / bin / ruby​​ extconf.rb 检查-lrt中的fdatasync()…否 检查sqlite3.h …是的 在-lsqlite3中检查sqlite3_open()…没有 * extconf.rb失败* 由于某些原因,可能无法创建Makefile 必要的库和/或标题。 检查mkmf.log文件以获取更多信息 细节。 您可能需要配置选项。 似乎sqlite3库不能正常工作。 我已经尝试安装macports […]

ActiveRecord :: StatementInvalid SQLite3 :: SQLException:没有这样的列:true:

我希望@messages返回@folder.messages,其中“已删除”列的值不等于true。 我不确定为什么这会继续抛出SQLException。 我想我没有正确格式化已删除的属性,但我不确定如何解决它。 任何帮助将不胜感激。 提前致谢。 错误信息: ActiveRecord::StatementInvalid in MailboxController#index SQLite3::SQLException: no such column: true: SELECT “message_copies”.* FROM “message_copies” WHERE (“message_copies”.folder_id = 1) AND (deleted != true) 应用跟踪: app/controllers/mailbox_controller.rb:14:in `show’ app/controllers/mailbox_controller.rb:5:in `index’ Mailbox_Controller.rb 1 class MailboxController “show” 7 end 8 9 def show 10 current_user = User.find(session[:user_id]) 11 @folder = Folder.where(“user_id = #{current_user.id}”).first 12 @msgs = […]

rake db:migrate生成“rake aborted! 找不到表“错误

我是Rails的新手,我正在为我的雇主构建一个简单的项目跟踪应用程序。 我一直在我的Mac上开发应用程序并将其推送到github。 我只是设法将我的github repo克隆到我公司防火墙后面的一个Windows框中,希望让同事们试用这个应用程序。 但是当我去rake db:migrate来初始化windows框中的数据库时,我收到以下错误消息: $ rake db:migrate –trace ** Invoke db:migrate (first_time) ** Invoke environment (first_time) ** Execute environment rake aborted! Could not find table ‘projects’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/connection_adapters/sqlite3_adapter.rb:29:in `table_structure’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/faker-0.3.1/lib/extensions/object. rb:3:in `returning’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/connection_adapters/sqlite3_adapter.rb:28:in `table_structure’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/connection_adapters/sqlite_adapter.rb:228:in `columns’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/base.rb:1271:in `columns’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/base.rb:1279:in `columns_hash’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/base.rb:1578:in `find_one’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/base.rb:1569:in `find_from_ids’ c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_reco rd/base.rb:616:in `find’ […]

升级到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 for Ruby(Mac OSX 10.5.8)

我正在遵循本指南ATM – http://guides.rubyonrails.org/getting_started.html#getting-up-and-running-quickly-with-scaffolding 在尝试创建数据库时,我得到了: Morgans-Computer:博客Morgan $ rake db:create无法在Gemfile中列出的任何gem源中找到gem’sqlite3(> = 0)’。 运行bundle install以安装缺少的gem。 当我尝试运行’bundle install’时,我收到更多错误: 安装带有本机扩展的sqlite3(1.3.4)/Users/Morgan/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:在`rescue in build_extensions中的块’:错误:无法构建gem原生扩展。 (gem::安装:: ExtensionBuildError) /Users/Morgan/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 我曾尝试安装Ruby Gem Sqlite3(http://rubygems.org/gems/sqlite3-ruby),但它仍然失败。 我在这里发现另一篇post说我需要安装C,因为这是编译器编写的内容? 不确定这究竟意味着什么,或者我是如何去做的。 任何帮助将不胜感激!!

为Ruby SQLite插入转义字符串

我正在创建一个Ruby脚本,将大约150k行的制表符分隔文本文件导入SQLite。 到目前为止: require ‘sqlite3’ file = File.new(“/Users/michael/catalog.txt”) string = [] # Escape single quotes, remove newline, split on tabs, # wrap each item in quotes, and join with commas def prepare_for_insert(s) s.gsub(/’/,”\\\\'”).chomp.split(/\t/).map {|str| “‘#{str}'”}.join(“, “) end file.each_line do |line| string << prepare_for_insert(line) end database = SQLite3::Database.new("/Users/michael/catalog.db") # Insert each string into the database string.each do […]

错误:rails中的’不兼容的库版本’sqlite3-1.3.11

我在Ubuntu系统上工作(16.04)。 我的问题是每当我设置任何rails项目并尝试运行rails s然后我得到’不兼容的库版本’错误sqlite3如下所示。 /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:282: warning: circular argument reference – now /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `require’: incompatible library version – /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3/sqlite3_native.so (LoadError) from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:6:in `rescue in ‘ from /home/jiggs/.rvm/gems/ruby-2.3.1@albumriver/gems/sqlite3-1.3.11/lib/sqlite3.rb:2:in `’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `require’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:77:in `block (2 levels) in require’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `each’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:72:in `block in require’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `each’ from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:61:in `require’ from /usr/lib/ruby/vendor_ruby/bundler.rb:99:in `require’ from /home/jiggs/sites/albumriverfinal/config/application.rb:7:in […]