Почему я получаю эту ошибку, когда пытаюсь отправить SQLite3 в Postgresql (с помощью касаний) в Cedar Stack? - PullRequest
3 голосов
/ 07 ноября 2011

Я провел небольшое исследование в Центре разработки Heroku, и теперь я обращаюсь к сообществу за помощью.Здесь моя проблема.Я не могу подтолкнуть мою БД в Heroku Cedar Stack.Я пытаюсь перенести базу данных sqlite в postgresql через гем Taps.Когда я готов к развертыванию, я запускаю:

bundle install --without production
heroku run db:push

Я получаю следующий результат:

Running db:seed attached to terminal... up, run.17
sh: db:seed: not found
heroku run rake db:migrate

И когда я запускаю миграцию:

heroku run rake db:migrate

Iполучить следующее:

Running rake db:migrate attached to terminal... up, run.18
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/usr/local/lib/ruby/1.9.1/rake.rb:2367:in `raw_load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
/usr/local/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
/usr/local/lib/ruby/1.9.1/rake.rb:1991:in `run'
/usr/local/bin/rake:31:in `<main>'

Каждый раз, когда я нажимаю на Heroku (мастер git push heroku), он терпит неудачу, потому что мой gem-файл пытается установить gem sqlite3, даже если он находится внутри групп разработки и тестирования в моем Gemfile,Моя производственная среда database.yml по-прежнему указывает на адаптер sqlite даже после успешного выполнения следующей команды:

heroku config:add BUNDLE_WITHOUT="test development" --app app_name_on_heroku

Нет идей.Пожалуйста помоги.Если это полезно, я могу опубликовать результаты моего гемфайла, heroku ps и логов.

Cheers

ОБНОВЛЕНИЕ: После следования указаниям @ John теперь я получаю следующее терминальное сообщение.

Sending schema
Schema:        100% |==========================================| Time: 00:00:07
Sending indexes
schema_migrat: 100% |==========================================| Time: 00:00:00
Sending data
4 tables, 6 records
schema_migrat:   0% |                                          | ETA:  --:--:--
Saving session to push_201111070749.dat..
!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: LoadError: no such file to load -- sequel/adapters/

И следующие предупреждения:

["/ app / .bundle / gems / ruby ​​/ 1.9.1 / gems / sequel-3.20.0 / lib / sequel / core.rb: 249: in require'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/core.rb:249:in блок в tsk_require '"," /app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/core.rb:72:in block in check_requiring_thread'", "<internal:prelude>:10:in синхронизировать ","/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/core.rb:69:in check_requiring_thread'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/core.rb:249:in tsk_require '"," /app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:25:in adapter_class'", "/app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0/lib/sequel/database/connecting.rb:54:in connect '"," /app/.bundle/gems/ruby/1.9.1/gems/sequel-3.20.0 / lib / sequel / core.rb: 119: in connect'", "/app/lib/taps/db_session.rb:14:in conn '"," /app/lib/taps/server.rb:91:in block in <class:Server>'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:865:in call' "," / app /.bundle / gems / ruby ​​/ 1.9.1 / gems / sinatra-1.0 / lib / sinatra / base.rb: 865: в block in route'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:521:in instance_eval '"," /app/.bundle/gems/ruby/1.9.1/gems / sinatra-1.0 / lib / sinatra / base.rb: 521: в блоке route_eval'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:500:in (2 уровня) на маршруте! '"," /app/.bundle / gems / ruby ​​/ 1.9.1 / gems / sinatra-1.0 / lib / sinatra / base.rb: 497: в catch'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:497:in блоке на маршруте! '"," /app/.bundle/gems/ruby/1.9.1 / gems / sinatra-1.0 / lib / sinatra / base.rb: 476: в each'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:476:in route! '"," /App/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra / base.rb: 601: в dispatch!'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in блоке вызова! '"," /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:в instance_eval'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in блоке в invoke '"," /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in catch'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:566:in invoke' ","/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:411:in call!'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:399:in call '"," /app/.bundle/gems/ruby/1.9.1 / gems / rack-1.2.1 / lib / rack / auth / basic.rb: 25: в call'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in блоке при вызове '"," /app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0 / lib / sinatra / base.rb: 1005: в synchronize'", "/app/.bundle/gems/ruby/1.9.1/gems/sinatra-1.0/lib/sinatra/base.rb:979:in вызов '', '/home/heroku_rack/lib/static_assets.rb:9:in call'", "/home/heroku_rack/lib/last_access.rb:15:in вызов' ', "/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:47:in block in call'", "/app/.bundle/gems/ruby/1.9.1/gems/rack-1.2.1/lib/rack/urlmap.rb:41:in каждый '"," /app/.bundle/gems/ruby/1.9.1/gems / rack-1.2.1 / lib / rack / urlmap.rb: 41: в call'", "/home/heroku_rack/lib/date_header.rb:14:in вызовите '"," /app/.bundle/gems/ruby/1.9.1/gems / rack-1.2.1 / lib / rack / builder.rb: 77: в call'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:76:in блоке в pre_process '"," /app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:74:in catch'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:74:in pre_process '"," /app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:57: в process'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/connection.rb:42:in receive_data '"," /app/.bundle/gems/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in run_machine'", "/app/.bundle/gems/ruby/1.9.1/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in run' ","/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/backends/base.rb:57:in start'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/server.rb:156:in start '"," /app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:80:in start'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:177:in run_command '"," /app/.bundle/gems/ruby/1.9.1/gems / thin-1.2.7 / lib / thin / runner.rb: 143: в run!'", "/app/.bundle/gems/ruby/1.9.1/gems/thin-1.2.7/bin/thin:6:in '"," /usr/ruby1.9.2/bin/thin:19:in load'", "/usr/ruby1.9.2/bin/thin:19:in' "]

Ответы [ 4 ]

2 голосов
/ 06 апреля 2012

Была похожая проблема. Включен гем SQLite в группу разработчиков Bundler и гем Postgres в группу Production. Heroku все еще пытается установить SQLite.

Очевидно, стек Cedar не поддерживает связывание без определенных групп. https://devcenter.heroku.com/articles/bundler

Обратите внимание - в настоящее время стек Cedar не поддерживает BUNDLE_WITHOUT.

Перейдите на Gemfile.lock, закомментируйте гем SQLite из Gemfile, заново установите пакет, добавьте новые Gemfile и Gemfile.lock в git и отправьте обратно в Heroku. Кроме того, поскольку SQLite является зависимостью от Taps, я также прокомментировал это.

Когда я хочу запустить среду разработки, нужно обратить внимание на вышесказанное.

В следующий раз собираюсь использовать Postgres в разработке!

1 голос
/ 26 ноября 2011

У меня была та же проблема, что на самом деле помогает, это 2 вещи

  1. Полностью стереть ваш репозиторий git, а затем сделать это с нуля - git init, git add.тогда мерзавец этап.затем git commit -m "все, что вы хотите поместить сюда".После этого уничтожьте приложение, создайте его снова и выполните все шаги, включая db: migrate.Убедитесь, что вы создали свое приложение следующим образом: heroku create --stack cedar

  2. Проверьте эту ссылку https://github.com/carlhuda/bundler/blob/master/ISSUES.md

1 голос
/ 07 ноября 2011

Прежде всего, команда DB push

heroku db:push

не через heroku run

Я подозреваю, что ваша проблема с Sqlite (может быть?) Связана с вашим синтаксисом для нажатия на ветки - pushветку к героку надо сделать

git push heroku branchname:master

что говорит толкни меня в мастер ветку на пульте геройку.Если вы действительно делаете git push heroku branchname, вы на самом деле ничего не развертываете, так как heroku будет развертывать только ветку master, чтобы вы могли вносить изменения в код, нажимая - но фактически не влияя на развернутый код.Хотя это не объясняет, почему вы получаете сообщение No rakefile found.

0 голосов
/ 14 октября 2012

Как описано в https://devcenter.heroku.com/articles/rails3#deploy-your-application-to-heroku, вам просто нужно развернуть свой код

heroku create
git push heroku master
...