我有django 1.2.3.0 Final,我正在使用Python 2.7
在我的设置中,我为DATABASE_ENGINE填充了'sqlite3'。 我能够使用sqlite3(在djano manage.py shell级别),直到我被告知我需要访问
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但仍然没有运气
任何输入都表示赞赏。 谢谢
答案 0 :(得分:2)
根问题(仍然存在于django 1.3.1中)是执行sqlite3客户端的代码不处理sqlite db pathname中的空格。我添加了一些引用如下:
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'')。
答案 1 :(得分:0)
提问者回答了他自己的问题here。