2009-10-28 3 views
1

J'ai une application Sinatra DataMapper qui frappe une base de données sqlite3 que je Je tente de déployer à Heroku. Premier passage, j'ai inclus mon fichier de base de données dans le repo git. Cela fonctionne, comme dans l'application fonctionne, mais les données de production n'appartiennent pas au référentiel. Cela ne fonctionne pas vraiment parce que la base de données est en lecture seule. J'ai ensuite supprimé le fichier db pour le contrôle de la source et j'ai tenté une heroku db:push sqlite://db/my-app.db. Cette commande génère la trace stact suivante:Problème qui pousse sqlite3 db à héroku: lib/taps/schema.rb: 30: dans `sqlite_config ': méthode non définie` []' pour nil: NilClass (NoMethodError)

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 

Une idée de ce qui peut être à l'origine de ce problème et comment je peux le réparer?

Répondre

2

Heroku a besoin d'un schéma.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. Déployé cela à heroku et ensuite la poussée de DB a fonctionné.

+0

Mon application utilise Sinatra et DataMapper, et j'ai un problème similaire, mais je ne sais pas comment créer un fichier schema.rb. Pouvez-vous m'offrir des conseils? –

Questions connexes