Python Flask迁移错误:“ConfigParser.NoSectionError:无节:“alembic”

Python Flask迁移错误:“ConfigParser.NoSectionError:无节:“alembic”,python,flask,alembic,flask-migrate,Python,Flask,Alembic,Flask Migrate,在过去的几周里,我一直在根据米格尔·格林伯格(Miguel Grinberg)的书《Flask Web Development》建立一个网站。这是我的“manage.py”文件供参考: import os from app import create_app, db from app.models import User, Role, Permission, Post from flask.ext.script import Manager, Shell from flask.ext.migra

在过去的几周里,我一直在根据米格尔·格林伯格(Miguel Grinberg)的书《Flask Web Development》建立一个网站。这是我的“manage.py”文件供参考:

import os
from app import create_app, db
from app.models import User, Role, Permission, Post
from flask.ext.script import Manager, Shell
from flask.ext.migrate import Migrate, MigrateCommand

app = create_app(os.getenv('FLASK_CONFIG') or 'default')
manager = Manager(app)
migrate = Migrate(app, db)

def make_shell_context():
    return dict(app=app, db=db, User=User, Follow=Follow, Role=Role,
                Permission=Permission, Post=Post)

manager.add_command("shell", Shell(make_context=make_shell_context))
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
     manager.run()
这是我的app/_init.py文件:

from flask import Flask #session, flash, url_for
from flask.ext.mail import Mail
from flask.ext.moment import Moment
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.login import LoginManager
from config import config

login_manager = LoginManager()
login_manager.session_protection = 'strong'
login_manager.login_view = 'auth.login'

mail = Mail()
moment = Moment()
db = SQLAlchemy() 

def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    login_manager.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)

    from main import main as main_blueprint
    from .auth import auth as auth_blueprint
    app.register_blueprint(main_blueprint)
    app.register_blueprint(auth_blueprint, url_prefix = '/auth')

    return app
正如您所看到的,这是一个相对简单的项目,但它一直进展顺利,直到几天前我意外地删除了我的migrations文件夹,直到那时,它还没有完全正常工作。当我再次尝试设置迁移文件夹时,出现以下错误:

(website1)joshua@joshua-ThinkPad-Edge-E430 ~/website/website1 $ python manage.py db migrate
Traceback (most recent call last):
  File "manage.py", line 29, in <module>
    manager.run()
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/flask_script/__init__.py", line 412, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/flask_script/__init__.py", line 383, in handle
    res = handle(*args, **config)
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/flask_script/commands.py", line 216, in __call__
    return self.run(*args, **kwargs)
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/flask_migrate/__init__.py", line 153, in migrate
    config = _get_config(directory, opts=['autogenerate'])
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/flask_migrate/__init__.py", line 51, in _get_config
    config.set_main_option('script_location', directory)
  File "/home/joshua/.virtualenvs/website1/lib/python2.7/site-packages/alembic/config.py", line 201, in set_main_option
    self.file_config.set(self.config_ini_section, name, value)
  File "/home/joshua/anaconda/lib/python2.7/ConfigParser.py", line 753, in set
    ConfigParser.set(self, section, option, value)
  File "/home/joshua/anaconda/lib/python2.7/ConfigParser.py", line 396, in set
    raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'alembic'
我真的不知道该怎么办,我尝试过删除数据库,然后重新创建数据库,然后再次运行db migrate,但我遇到了与以前相同的错误。我还尝试卸载并重新安装alembic,但没有成功


我现在还不确定该怎么办,直到现在,每当我对教程有问题时,我都会花时间自己解决,因为我想了解每件事是如何运作的,但是我完全被这个问题难住了。

多罗斯:我忘了运行python manage.py db init。

你运行python manage.py db init了吗?哇。。。我不敢相信我总是错过那个细节,多么尴尬。。。非常感谢你!