Команда Django: Загрузить данные Mysql

Пишу команду django, которая импортирует из каталога txt файлы в базу данных. База данных создается, однако при запуске я получаю прекрасную ошибку indescript 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 '...path' at line 1"). Я понятия не имею, что нужно исследовать. Когда я пытаюсь запустить единственный файл в портале mysql, он вроде бы работает. Как я могу перейти к команде Django?

Ниже приведен код команды:

def handle(self, *args, **options):
        self.stdout.write("\nStarting...")
        with connections['wk'].cursor() as cursor:
            db_name = settings.DATABASES['wk']['NAME']
            for path in glob.glob(f'{options["p"]}/*[!.sql]'):
                table_name = f'{db_name}.{path.rsplit("/")[-1].lower()}'
                cursor.execute("LOAD DATA INFILE '%s' INTO TABLE %s", [path, table_name])

Вы должны позволить коннектору выполнять замену только для значений данных, а не для имен файлов, таблиц и полей. В этом случае возникает двойное цитирование.

Со:

          cursor.execute("LOAD DATA INFILE '%s' INTO TABLE %s" % (path, table_name))

Or

          cursor.execute(f"LOAD DATA INFILE '{path}' INTO TABLE {table_name}")
Вернуться на верх