Выполните SQL из файла в SQLAlchemy

Как я могу выполнить целый sql файл в базу данных с помощью SQLAlchemy? Может быть много различных запросов SQL в файле включая, начинают и фиксируют/откатывают.

22
задан Szymon Lipiński 15 February 2010 в 18:24
поделиться

1 ответ

К сожалению, я не знаю хорошего общего ответа на этот вопрос. Некоторые dbapi (например, psycopg2) поддерживают выполнение многих операторов одновременно. Если файлы не огромные, вы можете просто загрузить их в строку и выполнить при подключении. Для других я бы попробовал использовать клиент командной строки для этой базы данных и передавать данные туда с помощью модуля подпроцесса.

Если эти подходы неприемлемы, тогда вам придется пойти дальше и реализовать небольшой парсер SQL, который сможет разделить файл на отдельные операторы. Это очень сложно сделать на 100% правильно, так как вам придется учитывать правила экранирования литералов, специфичные для диалекта базы данных, используемый charset, любые опции конфигурации базы данных, которые влияют на разбор литералов (например, PostgreSQL standard_conforming_strings).

Если вам нужно, чтобы все было правильно только на 99,9%, то с помощью магии regexp вы пройдете большую часть пути.

5
ответ дан 29 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: