altairbow / django-db-connection-pool

Database connection pool component library for Django
https://pypi.python.org/pypi/django-db-connection-pool/
MIT License
181 stars 24 forks source link

django 连接oceanbase Mysql租户,make migrantions 失败, #39

Closed qq284909408 closed 1 year ago

qq284909408 commented 1 year ago

Describe the bug A clear and concise description of what the bug is. 大佬, 使用该包连接OB 的Mysql租户时,在 makemigrations 时出现错误如下: 应该如何解决,请求帮助万分感激。 manage.py@obtest > makemigrations "C:\Program Files\JetBrains\PyCharm 2020.3.3\bin\runnerw64.exe" C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe "C:\Program Files\JetBrains\PyCharm 2020.3.3\plugins\python\helpers\pycharm\django_manage.py" makemigrations D:/obtest Tracking file by folder pattern: migrations D:\Program Files\Java\jdk1.8.0_351\jre\bin\server\jvm.dll hell Oracle jdbc:oceanbase://192.168.1.161:2883/sre Traceback (most recent call last): File "PreparedStatement.java", line 1231, in com.alipay.oceanbase.jdbc.PreparedStatement.execute File "PreparedStatement.java", line 1942, in com.alipay.oceanbase.jdbc.PreparedStatement.executeInternal File "ConnectionImpl.java", line 2908, in com.alipay.oceanbase.jdbc.ConnectionImpl.execSQL File "MysqlIO.java", line 3164, in com.alipay.oceanbase.jdbc.MysqlIO.sqlQueryDirect File "MysqlIO.java", line 2998, in com.alipay.oceanbase.jdbc.MysqlIO.sendCommand File "MysqlIO.java", line 4804, in com.alipay.oceanbase.jdbc.MysqlIO.checkErrorPacket File "MysqlIO.java", line 4879, in com.alipay.oceanbase.jdbc.MysqlIO.checkErrorPacket File "SQLError.java", line 1176, in com.alipay.oceanbase.jdbc.SQLError.createSQLException File "Util.java", line 416, in com.alipay.oceanbase.jdbc.Util.getInstance File "Util.java", line 439, in com.alipay.oceanbase.jdbc.Util.handleNewInstance File "Constructor.java", line 423, in java.lang.reflect.Constructor.newInstance File "DelegatingConstructorAccessorImpl.java", line 45, in sun.reflect.DelegatingConstructorAccessorImpl.newInstance File "NativeConstructorAccessorImpl.java", line 62, in sun.reflect.NativeConstructorAccessorImpl.newInstance File "NativeConstructorAccessorImpl.java", line -2, in sun.reflect.NativeConstructorAccessorImpl.newInstance0 Exception: Java Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\jaydebeapi__init__.py", line 534, in execute is_rs = self._prep.execute() com.alipay.oceanbase.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: com.alipay.oceanbase.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'view_name' in 'field list'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Program Files\JetBrains\PyCharm 2020.3.3\plugins\python\helpers\pycharm\django_manage.py", line 52, in run_command() File "C:\Program Files\JetBrains\PyCharm 2020.3.3\plugins\python\helpers\pycharm\django_manage.py", line 46, in run_command run_module(manage_file, None, 'main', True) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\runpy.py", line 205, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:/obtest\manage.py", line 22, in main() File "D:/obtest\manage.py", line 18, in main execute_from_command_line(sys.argv) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management__init.py", line 381, in execute_from_command_line utility.execute() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management__init.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv self.execute(*args, cmd_options) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 364, in execute output = self.handle(*args, *options) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(args, kwargs) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\core\management\commands\makemigrations.py", line 101, in handle loader.check_consistent_history(connection) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\loader.py", line 283, in check_consistent_history applied = recorder.applied_migrations() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\recorder.py", line 73, in applied_migrations if self.has_table(): File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\migrations\recorder.py", line 56, in has_table return self.Migration._meta.db_table in self.connection.introspection.table_names(self.connection.cursor()) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\introspection.py", line 48, in table_names return get_names(cursor) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\base\introspection.py", line 43, in get_names return sorted(ti.name for ti in self.get_table_list(cursor) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\oracle\introspection.py", line 64, in get_table_list """) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\utils.py", line 99, in execute return super().execute(sql, params) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\utils.py", line 67, in execute return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers return executor(sql, params, many, context) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\utils.py", line 82, in _execute return self.cursor.execute(sql) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\dj_db_conn_pool\backends\jdbc\utils.py", line 39, in execute self._cursor.cursor.execute(query, parameters) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\jaydebeapi__init__.py", line 536, in execute _handle_sql_exception() File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\jaydebeapi__init__.py", line 165, in _handle_sql_exception_jpype reraise(exc_type, exc_info[1], exc_info[2]) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\jaydebeapi\init__.py", line 57, in reraise raise value.with_traceback(tb) File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\jaydebeapi\init__.py", line 534, in execute is_rs = self._prep.execute() jaydebeapi.DatabaseError: com.alipay.oceanbase.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'view_name' in 'field list'

Process finished with exit code 1

The above exception was the direct cause of the following exception:

Environment

Traceback Post traceback here. 1

altairbow commented 1 year ago

你在用 django-db-connection-pool 哪个版本?我看报错里有C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\django\db\backends\oracle\introspection.py,应该是因为之前版本使用了 Oracle 的 DatabaseWrapper 导致的,新版Oceanbase MySQL backend 更正了这个问题,试试主线的版本跑下 makemigrations 看看

qq284909408 commented 1 year ago

OK。~邮件已收到。。

altairbow commented 1 year ago

你好,解决了吗?

qq284909408 commented 1 year ago

OK。~邮件已收到。。

qq284909408 commented 1 year ago

OK。~邮件已收到。。