2010-10-23 20 views
3

時,我有Django的1.2.3.0決賽,我使用Python 2.7Django的 - 太多的選擇lanuching dbshel​​l sqlite3的

在我的設置,我充滿了DATABASE_ENGINE 'sqlite3的'。 我能夠與sqlite3的(在djano manage.py殼的水平)工作,直到有人告訴我,我需要訪問

蟒蛇manage.py dbshel​​l

起初我錯誤「sqlite3的是不承認......」 然後我讀線程,我發現,這可以通過下載 的exe文件來解決,並在Windows上設置環境變量路徑(我在 XP專業版)

我用這種方法代替 http://groups.google.com/group/django-users/msg/cf0665c227030ae2

現在,當我訪問蟒蛇manage.py dbshel​​l,我越來越

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

提問者回答了他自己的問題here

2

根本問題(在django 1.3.1中仍然存在)是執行sqlite3客戶端的代碼不處理sqlite數據庫路徑名中的空格。我加了一些報價如下:

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')。

相關問題