Problème de transfert de la base de données sqlite3 vers heroku: lib / taps / schema.rb: 30: dans `sqlite_config ': méthode non définie' [] 'pour nil: NilClass (NoMethodError)

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

  •  06-07-2019
  •  | 
  •  

Question

J'ai une application Sinatra DataMapper qui frappe une base de données sqlite3 que je tente de déployer sur Heroku. D'abord, j'ai inclus mon fichier de base de données dans le dépôt git. Cela fonctionne, comme dans l'application, mais les données de production n'appartiennent pas au référentiel. Cela ne fonctionne pas vraiment car la base de données est en lecture seule.

J'ai ensuite supprimé le fichier de base de données pour le contrôle de code source et tenté une base de données heroku: push sqlite: //db/my-app.db . Cette commande génère la trace d’activation suivante:

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

Avez-vous une idée de ce qui peut causer cela et comment je peux le réparer?

Était-ce utile?

La solution

Heroku a besoin d'un fichier schema.rb pour "préparer" l'instance de base de données (Postgres) qui recevra vos données via heroku db: push . J'ai généré un schema.rb via des rails. A déployé cela sur heroku, puis la poussée de base de données a fonctionné.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top