标签: sqlite3-ruby

在Ubuntu上sqlite3-ruby安装错误

我在sqlite3-ruby安装期间出现以下错误:

Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel'
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog …

ruby sqlite ubuntu sqlite3-ruby

258
推荐指数
6
解决办法
9万
查看次数

如何在SQLite3中解决"无法在默认值NULL中添加NOT NULL列"?

尝试将NOT NULL列添加到现有表时,我收到以下错误.为什么会这样?我试过rake db:reset认为现有记录是问题,但即使重置数据库后,问题仍然存在.你能帮我搞清楚吗?

迁移文件

class AddDivisionIdToProfile < ActiveRecord::Migration
  def self.up
    add_column :profiles, :division_id, :integer, :null => false
  end

  def self.down
    remove_column :profiles, :division_id
  end
end
Run Code Online (Sandbox Code Playgroud)

错误信息

SQLite3 :: SQLException:无法添加带有默认值NULL的NOT NULL列:ALTER TABLE"profiles"ADD"division_id"integer NOT NULL

database sqlite ruby-on-rails sqlite3-ruby

55
推荐指数
4
解决办法
3万
查看次数

升级到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]
Run Code Online (Sandbox Code Playgroud)

编辑:

在深入研究sqlite3_adapter.rb后,我发现导致分段错误的行是创建一个新的SQlite3数据库.

db = SQLite3::Database.new(
    config[:database].to_s,
    :results_as_hash => true
)
Run Code Online (Sandbox Code Playgroud)

编辑2:

我没有退出并重新启动终端,而是发现运行:

spring stop
Run Code Online (Sandbox Code Playgroud)

暂时停止问题.不是解决方案,而是更好的解决方案.

编辑3:

这似乎是Apple提供的libsqlite3不是叉安全的问题.更多信息可以在这里找到:

https://github.com/sparklemotion/sqlite3-ruby/issues/195

现在,我在〜/ .bashrc文件的底部创建了一个别名:

alias ss='spring stop'
Run Code Online (Sandbox Code Playgroud)

出现问题时,我现在可以输入:

ss
Run Code Online (Sandbox Code Playgroud)

然后重新运行测试.

sqlite ruby-on-rails sqlite3-ruby ruby-2.3.1

24
推荐指数
1
解决办法
3671
查看次数

sqlite3 gem无法安装

我正在尝试在OS X 10.6上安装"sqlite3-ruby"gem(或"sqlite3"gem).我正在使用ruby-1.9.2,目前我得到以下内容:

 $ sqlite3 --version
3.7.4
 $ sudo gem install sqlite3
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3-ruby:
    ERROR: Failed to build gem native extension.

/Users/folken/.rvm/rubies/ruby-1.9.2-head/bin/ruby extconf.rb
checking for sqlite3.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir …
Run Code Online (Sandbox Code Playgroud)

ruby sqlite gem ruby-on-rails sqlite3-ruby

16
推荐指数
3
解决办法
2万
查看次数

宝石:sqlite3和sqlite3-ruby之间的区别?

我不小心跑了:

sudo gem install sqlite3
Run Code Online (Sandbox Code Playgroud)

代替:

sudo gem install sqlite3-ruby
Run Code Online (Sandbox Code Playgroud)

所以现在当我运行gem list时,我得到:

gem list

*** LOCAL GEMS ***

sqlite3 (0.0.7)
sqlite3-ruby (1.2.5)
Run Code Online (Sandbox Code Playgroud)

两者有什么区别?我需要两个吗?

ruby sqlite gem sqlite3-ruby

13
推荐指数
2
解决办法
3122
查看次数

在Windows上使用sqlite3-ruby进行未初始化的常量编码

在新机器上,使用Windows的1-click安装程序安装ruby.安装了rails 2.3.2和所有相关的gem,然后我安装了sqlite3二进制文件(进入c:\ ruby​​\bin文件夹).最后我做了gem install sqlite3-ruby -v=1.2.3(这显然是与Windows一起使用的最新版本)

运行时rake db:migrate或在运行时触摸任何ActiveRecord对象时会发生此错误.

错误如下所示:

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
rake aborted!
**uninitialized constant Encoding**  <----
Run Code Online (Sandbox Code Playgroud)

任何帮助解决此错误将不胜感激!

跟踪:

 C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:443:in `load_missing_constant'
    C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:80:in `const_missing'
    C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:92:in `const_missing'
    C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-0.0.3/lib/sqlite3/encoding.rb:9:in `find'
    C:/Ruby/lib/ruby/gems/1.8/gems/sqlite3-0.0.3/lib/sqlite3/database.rb:69:in `initialize'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:13:in `new'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/sqlite3_adapter.rb:13:in `sqlite3_connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `send'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `loop'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `checkout'
    C:/Ruby/lib/ruby/1.8/monitor.rb:242:in `synchronize'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:435:in `initialize'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:400:in `new'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:400:in `up'
    C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record/migration.rb:383:in …
Run Code Online (Sandbox Code Playgroud)

windows sqlite ruby-on-rails sqlite3-ruby

11
推荐指数
1
解决办法
8254
查看次数

sqlite3-ruby无法在rvm 1.8.7上制作

从RVM 1.8.7开始升级到Rails 3.OSX 10.5.8

Output:
josh-crewss-macbook:~ joshcrews$ gem install sqlite3-rubyBuilding native extensions.  This could take a while...ERROR:  Error installing sqlite3-ruby:  ERROR: Failed to build gem native extension.
/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/bin/ruby extconf.rb
checking for sqlite3.h... yes
checking for sqlite3_libversion_number() in -lsqlite3... yes
checking for rb_proc_arity()... no
checking for sqlite3_column_database_name()... no
checking for sqlite3_enable_load_extension()... no
checking for sqlite3_load_extension()... no
creating Makefile

make
gcc -I. -I. -I/Users/joshcrews/.rvm/rubies/ruby-1.8.7-p174/lib/ruby/1.8/i686-darwin9.8.0 -I. -I/usr/local/include -I/opt/local/include -I/usr/include  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -g -O2  -fno-common -pipe -fno-common  -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn …
Run Code Online (Sandbox Code Playgroud)

sqlite sqlite3-ruby rvm

10
推荐指数
1
解决办法
1万
查看次数

sqlite3-ruby gem在ubuntu上找不到sqlite3.h

试图在ubuntu上获得Rails,我在安装sqlite3-ruby时遇到了麻烦 - 显然无法找到sqlite3.h.我可以找到错误的所有引用都表明问题是:未安装sqlite3头文件,或者make无法找到它们.在我看来,我已经解决了这两个问题,我仍然看到同样的问题.

不知道这里发生了什么.版本不匹配,也许?这是在ubuntu 10.04.1上使用ruby 1.8.7,sqlite 3.6.22-1,gem 1.3.5和sqlite3-ruby 1.3.1.

david@li88-188:~$ sudo apt-get install sqlite3
Run Code Online (Sandbox Code Playgroud)

[...成功安装...]

Setting up sqlite3 (3.6.22-1) ...
david@li88-188:~$ sudo apt-get install libsqlite3-dev
Run Code Online (Sandbox Code Playgroud)

[...成功安装...]

Setting up libsqlite3-dev (3.6.22-1) ...
david@li88-188:~$ 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.

/usr/bin/ruby1.8 extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'port install sqlite3 +universal' or 'yum install sqlite3-devel'
*** extconf.rb failed ***
Could …
Run Code Online (Sandbox Code Playgroud)

ruby sqlite ubuntu sqlite3-ruby

10
推荐指数
2
解决办法
1万
查看次数

安装sqlite3-ruby的问题!

我在crunchbang linux上安装sqlite3-ruby gem时遇到问题.谷歌搜索过去几个小时,并跟随几个有同样问题的人,我仍然没有得到它的工作.

这是我在尝试'sudo gem install sqlite3-ruby'之后看到的

构建原生扩展.这可能需要一段时间...
错误:安装sqlite3-ruby时
出错:错误:无法构建gem本机扩展.

/usr/bin/ruby1.8 extconf.rb
检查sqlite3.h ...是
检查-lsqlite3中的sqlite3_libversion_number()...是
检查rb_proc_arity()...不
检查sqlite3_initialize()...否
sqlite3-ruby只支持sqlite3版本3.6.16+,请升级!
*extconf.rb失败*
由于某些原因无法创建Makefile,可能缺少
必要的库和/或标头.检查mkmf.log文件以获取更多
详细信息.您可能需要配置选项.

接下来我跑过这个页面; http://groups.google.com/group/sqlite3-ruby/browse_thread/thread/f22d098b561c48af/6e754f7b2fc3cd75?#6e754f7b2fc3cd75

我下载了sqlite-amalgamation-3.7.0.1.tar.gz并发出以下命令:

tar zxvf sqlite-amalgamation-3.7.0.1.tar.gz
cd cd sqlite-3.7.0.1
mkdir $ HOME/sqlite
./configure --prefix = $ HOME/sqlite
make && make install
sudo gem install sqlite3-ruby - -与-sqlite3的-DIR = $ HOME /源码

但是,我仍然得到完全相同的错误.我使用'sudo apt-get install sqlite3 libsqlite3-dev',但我仍然得到完全相同的错误.

有什么建议?

而作为一个小小的一边,为什么当我使用'sudo apt-get install sqlite3'时,它抓取3.5.9而不是我手动下载的3.7.0.1?

ruby rubygems sqlite3-ruby

9
推荐指数
2
解决办法
1万
查看次数

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'
c:/Rails_Projects/molex_app/config/routes.rb:15
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_contro
ller/routing/route_set.rb:226:in `draw'
c:/Rails_Projects/molex_app/config/routes.rb:1
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_sup
port/dependencies.rb:145:in `load_without_new_constant_marking'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_sup
port/dependencies.rb:145:in `load'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_sup
port/dependencies.rb:521:in `new_constants_in'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_sup
port/dependencies.rb:145:in `load'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_contro
ller/routing/route_set.rb:286:in `load_routes!'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_contro
ller/routing/route_set.rb:286:in `each'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_contro
ller/routing/route_set.rb:286:in `load_routes!'
c:/RubyonRails/Ruby187/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_contro …
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails migrate sqlite3-ruby

8
推荐指数
3
解决办法
1万
查看次数