rake db:创建拾取旧适配器数据库

时间:2015-09-07 13:37:09

标签: ruby-on-rails ruby ruby-on-rails-4 rake

几周前,我通过向database.yml添加第二个数据库进行了实验。虽然一切正常,但我不喜欢这种方法,并删除了第二个DB的所有模型等。主数据库是postgresql,第二个是sqlite3。 db位置是database.yml中sqlite3 db的绝对路径。

每隔一段时间我就会将生产数据库转储到服务器上并将其拉入我的开发数据库。我这样做是为了:

rake db:drop
rake db:create
psql -d {database} < {output from pg_dump}

在我的实验后第一次尝试这个程序时,我得到了一个rake错误:

xuserAir:db xuser$ rake db:create
(in /Users/xuser/Work/v/vfw-post)
/Users/xuser/vfw/gnucash/export/vfwexport.gnucash already exists
vfw-post_test already exists
rake aborted!
Gem::LoadError: Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your Gemfile (and ensure its version is at the minimum required by ActiveRecord).

Gem::LoadError: sqlite3 is not part of the bundle. Add it to Gemfile.

我的应用程序根目录中没有任何引用sqlite3,数据库路径或任何文件名或目录。 rake db似乎从某个地方获取旧信息,我不知道在哪里。我可能已经将db / development.db设置为与export.db类似的符号,但这也消失了。

同样rake db:drop删除了app根目录之外的sqlite3数据库。

我在database.yml文件中对所有内容进行了条带化​​:

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: vfw-post_development

test:
  <<: *default
  database: vfw-post_test

production:
  <<: *default
  database: vfw-post_production
  username: vfw
  # password: <%= ENV['VFW-POST_DATABASE_PASSWORD'] %>

仍然会得到同样的错误。

滞留

Rails 4.2

1 个答案:

答案 0 :(得分:0)

我发现了它的来源。

在我的实验中,我设置了两个数据库

DATABASE_URL=sqlite3:/Users/xuser/vfw/gnucash/export/vfwexport.gnucash

我想在部署时提供帮助。我没有删除它,它首先转到DATABASE_URL。