(venv) PS F:\Pythonfiles\ericsson> python -m sqlacodegen.main --flask --outfile common/models/user.py mysql+pymysql://root:Lj_123456@192.168.188.128:3306/mysql --tables user
Traceback (most recent call last):
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\default.py", line 747, in do_execute
cursor.execute(statement, parameters)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\cursors.py", line 148, in execute
result = self._query(query)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\cursors.py", line 310, in _query
conn.query(q)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 775, in _read_query_result
result.read()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 725, in _read_packet
packet.raise_for_error()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.OperationalError: (1049, "Unknown database 'Engine(mysql+pymysql://root:***@192.168.188.128:3306/mysql)'")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
exec(code, run_globals)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlacodegen\main.py", line 66, in <module>
main()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlacodegen\main.py", line 57, in main
metadata.reflect(engine, args.schema, not args.noviews, tables)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\sql\schema.py", line 5466, in reflect
insp.get_table_names(schema)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\reflection.py", line 397, in get_table_names
return self.dialect.get_table_names(
File "" , line 2, in get_table_names
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\reflection.py", line 97, in cache
ret = fn(self, con, *args, **kw)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\dialects\mysql\base.py", line 2885, in get_table_names
rp = connection.exec_driver_sql(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1772, in exec_driver_sql
ret = self._execute_context(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1842, in _execute_context
return self._exec_single_context(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1983, in _exec_single_context
self._handle_dbapi_exception(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 2325, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1964, in _exec_single_context
self.dialect.do_execute(
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\sqlalchemy\engine\default.py", line 747, in do_execute
cursor.execute(statement, parameters)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\cursors.py", line 148, in execute
result = self._query(query)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\cursors.py", line 310, in _query
conn.query(q)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 548, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
result.read()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 1156, in read
first_packet = self.connection._read_packet()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\connections.py", line 725, in _read_packet
packet.raise_for_error()
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\protocol.py", line 221, in raise_for_error
err.raise_mysql_exception(self._data)
File "F:\Pythonfiles\ericsson\venv\lib\site-packages\pymysql\err.py", line 143, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1049, "Unknown database 'Engine(mysql+pymysql://root:***@192.168.188.128:3306/mysql)'")
[SQL: SHOW FULL TABLES FROM `Engine(mysql+pymysql://root:***@192.168.188.128:3306/mysql)`]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
engine的结构是这样的:
mysql+pymysql://{USER}:{PWD}@{HOST}:{PORT}/{DATA_BASE}
现在你写的是:
mysql+pymysql://root:***@192.168.188.128:3306/mysql
对照下,你是要连mysql数据库吗?现在的错误就是数据库有问题
有帮助的话,请点采纳呀~
你这应该是命令行连接数据库和配置连接数据库混用了,命令行是:
python -m sqlacodegen.main --flask --outfile common/models/user.py mysql://root:Lj_123456@192.168.188.128:3306/mysql --tables user
而在config.py配置中才是:
DB_USERNAME = 'root'
DB_PASSWORD = 'Lj_123456'
DB_HOST = '192.168.188.128'
DB_PORT = '3306'
DB_NAME = 'mysql'
DB_URI = 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8' % (DB_USERNAME,DB_PASSWORD,DB_HOST,DB_PORT,DB_NAME)
以下答案引用自GPT-3大模型,请合理使用:
示例,谢谢
答:可能是在使用flask-sqlacodegen的时候,没有加载mysql的数据库。因此可以先创建一个新的MySQL数据库,然后再调用sqlacodegen命令,例如:
python -m sqlacodegen.main --flask --outfile common/models/user.py mysql+pymysql://root:Lj_123456@192.168.188.128:3306/newdb --tables user
如果我的回答解决了您的问题,请采纳我的回答