大家好,我收到一个错误,看了一会儿后我不确定它意味着什么......
这是错误:
vagrant@vagrant-ubuntu-trusty-32:/vagrant/PayUp$ python setup_database.py
Traceback (most recent call last):
File "setup_database.py", line 58, in <module>
Base.metadata.create_all(engine)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 2848, in create_all
tables=tables)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1479, in _run_visitor
conn._run_visitor(visitorcallable, element, **kwargs)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1122, in _run_visitor
**kwargs).traverse_single(element)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/visitors.py", line 122, in traverse_single
return meth(obj, **kw)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 57, in visit_metadata
if self._can_create_table(t)]
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/ddl.py", line 35, in _can_create_table
table.name, schema=table.schema)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/sqlite/base.py", line 722, in has_table
cursor = _pragma_cursor(connection.execute(statement))
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 662, in execute
params)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 805, in _execute_text
statement, parameters
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 874, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
exc_info
File "/usr/lib/python2.7/dist-packages/sqlalchemy/util/compat.py", line 196, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 867, in _execute_context
context)
File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 324, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.DatabaseError: (DatabaseError) database disk image is malformed 'PRAGMA table_info("users")' ()
我看着它,我真的不明白错误在说什么
这是我用于创建数据库的代码,该数据库没有出现错误,以及服务器设置文件,这是我的服务器保存的位置。
from flask import Flaskfrom sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from setup_database import Base, Users, User_Auth, User_info, User_Location
# The following line is what initiates the flask app for this project
app = Flask(__name__)
engine = create_engine('sqlite:///payup.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
@app.route('/')
def HomePage():
output = "<h1>hello</h1>"
@app.route('/users')
def UsersList(users.id):
output = "<h1>This page will list all of the current users</h1>"
@app.route('/adduser')
def CreateNewUser(users):
output = "<h1>This page will be able to create new users</h1>"
@app.route('/manageUsers')
def ManageUsers(users.id):
output = "<h1>This page will be able to manage all of the users</h1>"
@app.route('/userProfile')
def UsersProfile(all of the tables):
output = "<h1>This page will display all of the users informaiton </h1>"
if __name__ == '__main__':
app.debug = True
app.run(host = '0.0.0.0', port = 5555)
因为您使用的是 SQLite,错误消息
sqlalchemy.exc.DatabaseError: (DatabaseError) database disk image is malformed 'PRAGMA table_info("users")' ()
会导致您假设名为 payup.db
的数据库文件有问题。
移动或删除可能损坏的 SQLite 数据库文件应该可以帮助您让脚本正常运行。成功执行(和服务器启动)后,SQLAlchemy 应该自动创建一个新的 SQLite 数据库文件。
我解决了
首次访问数据库并生成文件转储。
sqlite3 airflow.db
.mode insert
.output dump_all.sql
.dump
.exit
复制文件源
mv airflow.db airflow_back.db
使用转储重新创建数据库
sqlite3 airflow.db ".read dump_all.sql"
这样,数据库将重新启动并分配新密码。密码将位于“独立管理员密码.txt”中