2013-10-12 7 views
0

У меня есть приложение python, написанное для mysql. Вместо этого я хочу конвертировать для использования sqlite. Таблицы создаются в файле db.py. Проще говоря, я думаю, что я хочу, чтобы запустить что-то вродеИзмените приложение python от mysql до sqlite

createDb = sqlite3.connect(':memory:'') 
queryCurs = createDB.cursor() 

conn = sqlite3.connect(r"db.py") 

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

Являются ли мои приведенные выше утверждения правильными или есть что-то, что мне не хватает?

ответ

1

Вы не можете делать то, что хотите; sqlite не может разобрать Python для вас и «понять», что делает ваш скрипт db.py с MySQL.

Ваш скрипт db.py также не содержит таблиц MySQL; он в большинстве содержит инструкции SQL, которые инструктируют MySQL о создании этих таблиц.

Вам нужно будет перевести эти SQL-выражения в sqlite; каждый бренд базы данных использует свой собственный диалект SQL. Это будет похоже, но не то же самое, поскольку MySQL и sqlite имеют разные представления о том, как базы данных должны хранить и обрабатывать данные.

Если вы использовали ORM, например SQLAlchemy, то вам нужно настроить ORM для подключения к sqlite вместо MySQL; хороший ORM может перевести структуры таблиц, выраженные в коде Python, на различные диалекты SQL базы данных для вас.

+0

Основные отличия в том, что sqlite использует? и: имя вместо% s и% (name) s для привязки параметров, а sqlite слабо типизирован. Помимо этого, большинство кода просто конвертировать. Но вам действительно нужно преобразовать код и запустить его; это не так. – abarnert

Смежные вопросы