Rails 4:删除目录后如何重新创建Postgres数据库

时间:2018-12-19 19:46:08

标签: ruby-on-rails postgresql

我最近删除了/Users/MyUser/Library/Application Support/Postgres/var-9.6/base(我在Mac上)中的目录,因为我想从硬盘上释放几个演出,但这似乎以一种不再允许的方式破坏了Postgres我可以在Rails应用上运行测试。

我尝试了以下操作:

DROP DATABASE app_test;

,然后从Rails:

bundle exec rake db:create
bundle exec rake db:test

但出现以下错误:

ActiveRecord::NoDatabaseError: FATAL:  database "app_test" does not exist
DETAIL:  The database subdirectory "base/5992866" is missing.
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:661:in `rescue in connect'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:650:in `connect'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:242:in `initialize'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `new'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/postgresql_adapter.rb:44:in `postgresql_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:438:in `new_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `checkout_new_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:422:in `acquire_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:349:in `block in checkout'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:348:in `checkout'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:263:in `block in connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:262:in `connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_adapters/abstract/connection_pool.rb:571:in `retrieve_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_handling.rb:113:in `retrieve_connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/connection_handling.rb:87:in `connection'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:857:in `needs_migration?'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:396:in `load_schema_if_pending!'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:411:in `block in maintain_test_schema!'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:642:in `suppress_messages'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:416:in `method_missing'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activerecord-4.2.11/lib/active_record/migration.rb:411:in `maintain_test_schema!'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_help.rb:19:in `<top (required)>'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `block in require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:240:in `load_dependency'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/Documents/apps/cetuslabs/octopi/test/test_helper.rb:12:in `<top (required)>'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `block in require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:240:in `load_dependency'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/Documents/apps/cetuslabs/octopi/test/mailers/edi_mailer_test.rb:1:in `<top (required)>'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `block in require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:240:in `load_dependency'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/activesupport-4.2.11/lib/active_support/dependencies.rb:274:in `require'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:114:in `block (3 levels) in define'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:114:in `each'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:114:in `block (2 levels) in define'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:113:in `each'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:113:in `block in define'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/airbrake-6.1.0/lib/airbrake/rake.rb:19:in `execute'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/sub_test_task.rb:20:in `invoke_rake_task'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/railties-4.2.11/lib/rails/test_unit/testing.rake:8:in `block in <top (required)>'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/airbrake-6.1.0/lib/airbrake/rake.rb:19:in `execute'
/Users/MyUser/.rvm/gems/ruby-2.5.1/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
/Users/MyUser/.rvm/gems/ruby-2.5.1/bin/ruby_executable_hooks:24:in `eval'
/Users/MyUser/.rvm/gems/ruby-2.5.1/bin/ruby_executable_hooks:24:in `<main>'

数据库明显存在。如果我打开psql:

app_test              | MyUser  | UTF8     | en_US.UTF-8 | en_US.UTF-8 |

并且我也尝试多次运行以下命令:

bundle exec rake db:create:all

您知道如何重新创建数据库并再次运行测试吗?任何帮助深表感谢。预先感谢!

0 个答案:

没有答案