2015-08-03 2 views
1

Я хочу перенести базу данных в производственную среду на Heroku.Не удается выполнить миграцию на Heroku

Я набрал следующий код, однако у меня появилась ошибка. Я понятия не имею, что делать. Я с нетерпением жду вашего совета. Спасибо за вашу доброту.

$ heroku run rake db:migrate 

Running `rake db:migrate --trace` attached to terminal... up, run.2338 
rake aborted! 
LoadError: libruby.so.2.2: cannot open shared object file: No such file or directory - /app/vendor/bundle/ruby/2.2.0/gems/pg-0.18.2/lib/pg_ext.so 
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require' 
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `block in require' 
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:240:in `load_dependency' 
/app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.1/lib/active_support/dependencies.rb:274:in `require' 
/app/vendor/bundle/ruby/2.2.0/gems/pg-0.18.2/lib/pg.rb:4:in `<top (required)>' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:76:in `require' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:76:in `block (2 levels) in require' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:72:in `each' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:72:in `block in require' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:61:in `each' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler/runtime.rb:61:in `require' 
/app/vendor/bundle/ruby/2.2.0/gems/bundler-1.9.7/lib/bundler.rb:134:in `require' 
/app/config/application.rb:7:in `<top (required)>' 
/app/Rakefile:4:in `require' 
/app/Rakefile:4:in `<top (required)>' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/rake_module.rb:28:in `load_rakefile' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:689:in `raw_load_rakefile' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:94:in `block in load_rakefile' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:93:in `load_rakefile' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:77:in `block in run' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:176:in `standard_exception_handling' 
/app/vendor/ruby-2.2.2/lib/ruby/2.2.0/rake/application.rb:75:in `run' 
/app/bin/rake:8:in `<main>' 
+0

Этот http://stackoverflow.com/questions/31615921/heroku-loaderror-libruby-so-2-2 может вам помочь. – Pavan

+0

Уважаемый Pavan Я пробовал это раньше, но это не могло решить проблему. – lalala

ответ

1

Вы можете запустить dyno в фоновом режиме, используя heroku run:detached. В отличие от запуска heroku, эти динамики отправят свой вывод в ваши журналы вместо окна консоли. Вы можете использовать журналы heroku для просмотра результатов из следующих команд:
$ heroku run:detached rake db:migrate Running rake db:migrate... up, run.2 Use 'heroku logs -p run.2' to view the log output.

3

Вы пытались выполнить миграцию непосредственно из bash внутри сервера heroku? Если нет, то попробуйте следующее ...

heroku run bash --app your_app_name_goes_here 
bundle exec rake db:migrate 

Первая строка кода открывает командную Баш терминал и второй один мигрирует в БД, как обычно.


Это не будет предлагаемое решение. Но в случае, если вы НЕ заботитесь о потере данных в базе данных, сначала попробуйте сбросить базу данных и повторите попытку. Опять же, не делайте этого, если вы не хотите потерять существующие данные!

heroku pg:reset DATABASE 
heroku run rake db:migrate 

Однако вы можете выполнить это через bash, как и раньше.

Надеюсь, это поможет вам.

+0

Спасибо! Я пробовал оба ваших совета, однако он вернул ту же ошибку. LoadError: libruby.so.2.2: невозможно открыть файл общего объекта: нет такого файла или каталога - /app/vendor/bundle/ruby/2.2.0/gems/pg-0.18.2/lib/pg_ext.so – lalala

+0

Хмм похоже, проблема с Postgres. Попробуйте запустить gem install pg -pre' и повторите попытку. Это устанавливает предварительную версию. –

+0

Кажется, что «gem install pg -pre» также не может решить проблему. В любом случае, спасибо за вашу помощь! – lalala