【发布时间】:2021-02-12 15:28:39
【问题描述】:
将列名从“id”更改为“_id”后,迁移烧瓶应用程序时出现 keyError
我试图将 col 名称从“id”更改为“_id”的原因是忽略 python 中 (id) 构建的冲突。
有人可以支持吗??
烧瓶数据库迁移
在 api/autoapp.py
from api.app import create_app
app = create_app("api.config.develop") # app/config/develop.py
if __name__ == "__main__":
app.run(
debug=app.config["DEBUG"],
host=app.config["DB_ADDR"],
port=app.config["SERVER_PORT"],
)
在 api/app.py
from flask import Flask
from api.extensions import db
from api.views.views import api_bp
def create_app(config_filename):
app = Flask(__name__)
app.config.from_object(config_filename)
db.init_app(app)
app.register_blueprint(api_bp, url_prefix="/api") # localhost/api/
return app
在 api/extensions.py
from flask_sqlalchemy import SQLAlchemy
from flask_marshmallow import Marshmallow
from flask_migrate import Migrate
db = SQLAlchemy()
ma = Marshmallow()
migrate = Migrate()
在 api/迁移
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from api.extensions import db
from api.autoapp import app
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command("db", MigrateCommand)
if __name__ == "__main__":
manager.run()
flask db migrate
Traceback (most recent call last):
File "C:\Users\Nagaj\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "C:\Users\Nagaj\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\containers\learn-projects\flask-projects\messagesAPI\venv\Scripts\flask.exe\__main__.py", line 7, in <module>
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask\cli.py", line 967, in main
cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask\cli.py", line 586, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\decorators.py", line 21, in new_func
return f(get_current_context(), *args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask\cli.py", line 426, in decorator
return __ctx.invoke(f, *args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask_migrate\cli.py", line 92, in migrate
rev_id, x_arg)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask_migrate\__init__.py", line 96, in wrapped
f(*args, **kwargs)
File "d:\containers\learn-projects\flask-projects\messagesapi\venv\lib\site-packages\flask_migrate\__init__.py", line 208, in migrate
config = current_app.extensions['migrate'].migrate.get_config(
KeyError: 'migrate'
【问题讨论】:
标签: flask flask-sqlalchemy flask-restful