django 2.2 migrate gets error “table already exists” django.db.utils.ProgrammingError: 1146 的解决办法

当常规方法无法解决问题时,本文分享了一种通过导出数据库数据,重建数据库并执行Python迁移脚本来解决数据库问题的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上的方法:
方法1

但这方法对我不管用
最后我把数据库里面的数据导出来后,重建新的数据库,再执行

python manage.py makemigrations 
python manage.py migrate

才可以……

(.venv) PS D:\pycharm\daima\fg\login_reg> python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, login, sessions Running migrations: Traceback (most recent call last): File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 82, in _execute return self.cursor.execute(sql) ^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 1199, in read first_packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet packet.raise_for_error() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\recorder.py", line 67, in ensure_schema editor.create_model(self.Migration) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 307, in create_model self.execute(sql, params or None) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\base\schema.py", line 137, in execute cursor.execute(sql, params) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 99, in execute return super().execute(sql, params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\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 "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 76, in _execute_with_wrappers return executor(sql, params, many, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 80, in _execute with self.db.wrap_database_errors: File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\utils.py", line 89, in __exit__ raise dj_exc_value.with_traceback(traceback) from exc_value File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\utils.py", line 82, in _execute return self.cursor.execute(sql) ^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\backends\mysql\base.py", line 71, in execute return self.cursor.execute(query, args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\cursors.py", line 153, in execute result = self._query(query) ^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 563, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 825, in _read_query_result result.read() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 1199, in read first_packet = self.connection._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\connections.py", line 775, in _read_packet packet.raise_for_error() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\pymysql\err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1") During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\pycharm\daima\fg\login_reg\manage.py", line 21, in <module> main() File "D:\pycharm\daima\fg\login_reg\manage.py", line 17, in main execute_from_command_line(sys.argv) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line utility.execute() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\__init__.py", line 375, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 323, in run_from_argv self.execute(*args, **cmd_options) File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 364, in execute output = self.handle(*args, **options) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\base.py", line 83, in wrapped res = handle_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\core\management\commands\migrate.py", line 232, in handle post_migrate_state = executor.migrate( ^^^^^^^^^^^^^^^^^ File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\executor.py", line 91, in migrate self.recorder.ensure_schema() File "D:\pycharm\daima\fg\.venv\Lib\site-packages\django\db\migrations\recorder.py", line 69, in ensure_schema raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc) django.db.migrations.exceptions.MigrationSchemaMissing: Unable to create the django_migrations table ((1064, "You hav e an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1"))
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值