sqlite3 dbをherokuにプッシュする際の問題:lib / taps / schema.rb:30:in `sqlite_config ':unil method` []' for nil:NilClass(NoMethodError)

StackOverflow https://stackoverflow.com/questions/1634693

  •  06-07-2019
  •  | 
  •  

質問

Herokuにデプロイしようとしているsqlite3データベースにアクセスするSinatra DataMapperアプリがあります。最初に、データベースファイルをgitリポジトリに含めました。これはアプリの実行と同様に機能しますが、実稼働データはリポジトリに属していません。ただし、データベースは読み取り専用であるため、実際には機能しません。

ソース管理のためにdbファイルを削除し、 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

これを引き起こしている可能性があるものと、それを修正する方法を考えてください

役に立ちましたか?

解決

Herokuは、 heroku db:push 経由でデータを受信するデータベースインスタンス(Postgres)を「準備」するためにschema.rbを必要とします。レール経由で schema.rb を生成しました。これをherokuにデプロイすると、dbプッシュが機能しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top