2015-03-10 3 views
0

В моей фляге Приложение Я запускаю команду export FLASK_CONFIG='development' локально запускать приложение. Но теперь в Heroku, когда я запускаю команду heroku run init получаю ошибку, что я знаю, что я должен импортировать экспорт FLASK_CONFIG = 'развитие Но как я могу сделать в Herokuexport FLASK_CONFIG = 'development' on heroku

ошибку:

(venv)[email protected]:~/Fast-monks$ heroku run python manage.py shell 
Running `python manage.py shell` attached to terminal... up, run.6078 
postgres://fboastbcwkwdsa:[email protected].com:5432/dfg3hpuotv5lal 
postgres://fboastbcwkwdsa:[email protected].com:5432/dfg3hpuotv5lal 
Traceback (most recent call last): 
    File "manage.py", line 9, in <module> 
    app = create_app(os.environ['FLASK_CONFIG'] or 'default') 
    File "/app/.heroku/python/lib/python2.7/UserDict.py", line 23, in __getitem__ 
    raise KeyError(key) 
KeyError: 'FLASK_CONFIG' 
WARNING: Toolbelt v3.28.4 update available. 

manage.py:

app = create_app(os.environ['FLASK_CONFIG'] or 'default') 
magrate = Migrate(app, db) 
manager = Manager(app) 
manager.add_command('db', MigrateCommand) 

config.py:

class Config(object): 
    DEBUG = False 
    SECRET_KEY = 'Thisismysecretkey' 
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 
      'postgresql+psycopg2://peg:[email protected]/app') 
    print SQLALCHEMY_DATABASE_URI 


class HerokuConfig(ProductionConfig): 
    def init_app(cls, app): 
     ProductionConfig.init_app(app) 
     import logging 
     from logging import StreamHandler 
     file_handler = StreamHandler() 
     file_handler.setLevel(logging.WARNING) 
     app.logger.addHandler(file_handler) 


config = { 
    'development': DevelopmentConfig, 
    'testing': TestingConfig, 
    'production': ProductionConfig, 
    'heroku': HerokuConfig, 
    'default': DevelopmentConfig} 

ответ

1

Вы должны установить переменную окружения через heroku команды:

heroku config:set FLASK_CONFIG=development 

Хотя ваш manage.py выглядит не так, вы, кажется, пытаются установить по умолчанию в случае, если переменная не существует, но KeyError поднимается, прежде чем он может получить по умолчанию. Используйте это вместо:

app = create_app(os.environ.get('FLASK_CONFIG', 'default'))