Rails 4: как воссоздать базу данных Postgres после удаления каталогов - PullRequest
0 голосов
/ 19 декабря 2018

Я недавно удалил каталоги в /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

Есть идеи, как я могу воссоздать базу данных и снова запустить тесты?Буду признателен за любую оказанную помощь.Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...