【sqlacodegen】 sqlalchemy反向生成模型库

版权声明:本文为博主原创文章,转载文章须附上文章来源与作者。 https://blog.csdn.net/ChangerJJLee/article/details/86685709

使用手册

  • pip install sqlacodegen
  • sqlacodegen mysql://<数据库账号>:<数据库密码>@127.0.0.1:3306/<数据库名称> > models.py即可在当前目录生成models.py文件

报错Nomodulenamed’MySQLdb’

[root@59718da48394 Model]# /usr/local/python3/bin/sqlacodegen mysql://test:[email protected]:3306/testdb > EviewsModels.py
Traceback (most recent call last):
  File "/usr/local/python3/bin/sqlacodegen", line 11, in <module>
    sys.exit(main())
  File "/usr/local/python3/lib/python3.7/site-packages/sqlacodegen/main.py", line 43, in main
    engine = create_engine(args.url)
  File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 425, in create_engine
    return strategy.create(*args, **kwargs)
  File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 81, in create
    dbapi = dialect_cls.dbapi(**dbapi_args)
  File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 102, in dbapi
    return __import__('MySQLdb')
ModuleNotFoundError: No module named 'MySQLdb'

解决方案

  • pip3 install pymysql
  • vi /usr/local/python3/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py
  • 找到dbapi(cls) 修改成如下
    @classmethod
    def dbapi(cls):
        import pymysql
        pymysql.install_as_MySQLdb()
        return __import__('MySQLdb')

猜你喜欢

转载自blog.csdn.net/ChangerJJLee/article/details/86685709