Проблема с передачей sqlite3 db в heroku: lib / taps / schema.rb: 30: в `sqlite_config ': неопределенный метод` []' для nil: NilClass (NoMethodError) - PullRequest
1 голос
/ 28 октября 2009

У меня есть приложение Sinatra DataMapper, работающее с базой данных sqlite3, которую я пытаюсь развернуть в Heroku. Сначала я включил свой файл базы данных в репозиторий git. Это работает, как в приложении, но производственные данные не принадлежат хранилищу. Это на самом деле не работает, потому что база данных доступна только для чтения.

Затем я удалил файл БД для управления исходным кодом и попытался heroku db:push sqlite://db/my-app.db. Эта команда дает следующую трассировку:

my-app/(master) ~ heroku db:push sqlite:://db/my-app.db 
Sending schema
/Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:30:in `sqlite_config': undefined method `[]' for nil:NilClass (NoMethodError)
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:24:in `create_config'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:36:in `connection'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:43:in `dump'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:52:in `dump_without_indexes'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/schema:24
Sending data
0 tables, 0 records
Sending indexes
/Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:30:in `sqlite_config': undefined method `[]' for nil:NilClass (NoMethodError)
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:24:in `create_config'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:36:in `connection'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:43:in `dump'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/../lib/taps/schema.rb:62:in `indexes'
    from /Library/Ruby/Gems/1.8/gems/taps-0.2.19/lib/taps/../../bin/schema:26
Resetting sequences

Есть идеи, что может быть причиной и как я могу это исправить?

1 Ответ

2 голосов
/ 30 октября 2009

Heroku нужен schema.rb для «подготовки» экземпляра базы данных (Postgres), который будет получать ваши данные через heroku db:push. Я сгенерировал schema.rb через рельсы. Развернул это на геройку и потом сработал db push.

...