django - слишком много опций при запуске dbshell sqlite3 - PullRequest
3 голосов
/ 23 октября 2010

У меня есть django 1.2.3.0 Final, и я использую Python 2.7

В моих настройках у меня есть заполненный sqlite3 для DATABASE_ENGINE.Я могу работать с sqlite3 (на уровне оболочки djano manage.py), пока мне не сообщат, что мне нужен доступ к

python manage.py dbshell

Сначала я получил сообщение об ошибке «sqlite3 не распознан ....» Затем я прочитал темы и обнаружил, что это можно решить, загрузив exe-файл и установив путь к переменной среды в Windows (я в XP Pro)

Я использовал этот подход вместо http://groups.google.com/group/django-users/msg/cf0665c227030ae2?

Теперь, когда я получаю доступ к python manage.py dbshell , я получаю

C:\Documents and Settings\JohnWong\workspace\mysite\mysite>python
manage.py dbsh
ell
sqlite3: Error: too many options: "Settings\JohnWong\workspace\mysite
\sqlite.db"

Use -help for a list of options.

Я пытался с--database = name_of_my_db и до сих пор не повезло

Любой вклад приветствуется.Спасибо

Ответы [ 2 ]

2 голосов
/ 04 января 2012

Основная проблема (все еще существующая в django 1.3.1) состоит в том, что код, который исполняет клиент sqlite3, не обрабатывает пробелы в пути sqlite db. Я добавил несколько цитат следующим образом:

django.db.backends.sqlite3 / client.py

class DatabaseClient(BaseDatabaseClient):
        executable_name = 'sqlite3'

        def runshell(self):
            args = [self.executable_name,
                    '"' + self.connection.settings_dict['NAME'] + '"'] # JA HACK 
            if os.name == 'nt':
                sys.exit(os.system(" ".join(args)))
            else:
                os.execvp(self.executable_name, args)

и теперь он работает для меня (только для Windows - os.name 'nt').

0 голосов
/ 27 июля 2011

Аскер ответил на свой вопрос здесь .

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