не может выполнить '.read create.sql' - PullRequest
1 голос
/ 09 сентября 2011

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

conn = sqlite3.connect('testDB')
c = conn.cursor()
c.execute('.read create.sql')

Это выдает ошибку "sqlite3.OperationalError: near".": синтаксическая ошибка"

Если я делаю то же самое в строке sqlite3 cmd, все работает нормально

[me@myPC ~]$ sqlite3 testDB
SQLite version 3.3.6
Enter ".help" for instructions
sqlite> .read create.sql 
sqlite> 

Кажется, что любые команды, начинающиеся с a.Дайте мне проблемы.

Ответы [ 2 ]

3 голосов
/ 10 сентября 2011

просто передайте содержимое файла методу .execute:

conn = sqlite3.connect('testDB')
c = conn.cursor()
SQL = open('create.sql').read()
c.executescript(SQL)
2 голосов
/ 09 сентября 2011

Я бы предположил, что команды, начинающиеся с ., предназначены для самого клиента CLI, а не для бэкэнда.

Так что у вас нет шансов сделать это, и вам придется читать файлы и выполнять запросысамостоятельно, т.е. в Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...