簡體   English   中英

如何在更改數據庫時修復 Sequel::DatabaseConnectionError

[英]How do I fix Sequel::DatabaseConnectionError while changing database

在從sqlite過渡到postgresql的過程中,我使用這個命令taps server SQLite://db/development.sqlite3 jey 291298 ,但是隨后出現了如下問題。 也許 Gemfile 有問題。 我的 rails 版本是 5.1.6。

C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/adapters/sqlite.rb:105:in `initialize': SQLite3::CantOpenException: unable to open database file (Sequel::DatabaseConnectionError)
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/adapters/sqlite.rb:105:in `new'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/adapters/sqlite.rb:105:in `connect'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/connection_pool.rb:126:in `make_new'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/connection_pool/threaded.rb:192:in `assign_connection'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/connection_pool/threaded.rb:133:in `acquire'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/connection_pool/threaded.rb:90:in `hold'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/database/connecting.rb:264:in `synchronize'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/database/connecting.rb:279:in `test_connection'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/database/connecting.rb:58:in `connect'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/sequel-5.8.0/lib/sequel/core.rb:116:in `connect'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/taps-0.3.24/lib/taps/db_session.rb:1:in `<top (required)>'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/taps-0.3.24/lib/taps/server.rb:4:in `<top (required)>'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/taps-0.3.24/lib/taps/cli.rb:61:in `server'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/taps-0.3.24/lib/taps/cli.rb:27:in `run'
    from C:/RailsInstaller/Ruby2.3.3/lib/ruby/gems/2.3.0/gems/taps-0.3.24/bin/taps:6:in `<top (required)>'
    from C:/RailsInstaller/Ruby2.3.3/bin/taps:22:in `load'
    from C:/RailsInstaller/Ruby2.3.3/bin/taps:22:in `<main>'

文件

gem 'whenever', require: false
gem 'bcrypt', platforms: :ruby
gem 'cancan'
gem 'devise' 
gem 'rubocop', require: false
gem 'ransack'
gem 'kaminari'
gem 'nested_form'
gem 'simple_form'
gem 'state_machine'
gem 'ruby-graphviz', :require => 'graphviz'
gem 'stateful_enum'
gem 'hpricot'
gem 'highline'
gem "slim-rails"  
gem 'rails', '~> 5.1.6'
gem 'pg'
gem 'resque'
gem 'sinatra', '~> 2.0.0.beta2'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2' 
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bullet', group: 'development'

來自 Gemfile.lock 的一些片段:

sequel (5.8.0)
sinatra (2.0.1)
  mustermann (~> 1.0)
  rack (~> 2.0)
  rack-protection (= 2.0.1)
  tilt (~> 2.0)

錯誤是SQLite3::CantOpenException: unable to open database file ,問題是ruby-sqlite3驅動程序無法打開數據庫文件。 嘗試從 shell 運行sqlite3 db/development.sqlite3 ,看看是否得到相同或類似的錯誤。 如果是這樣,則可能是該文件不存在或用戶無權訪問它。 如果沒有,則可能是ruby-sqlite3驅動程序中的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM