Como posso usar SQLITE com DJANGO no Windows 7
Pergunta
Eu estou seguindo o tutorial no site do Django, que eu materialização fez usando o Windows XP e tudo correu bem, mas no Windows 7 eu recebo o seguinte erro:
sqlite3.OperationalError: unable to open database file
Eu uso o seguinte:
python manage.py sql Blog
Será que qualquer um tem alguma idéia que pode estar errado. O arquivo de banco de dados está localizado no C:\Software\Sqlite\Databases\Blog.db
E o settings.py ou seção de relação é simplesmente:
DATABASE_ENGINE = 'sqlite3' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
DATABASE_NAME = 'C:\Software\Sqlite\databases\blog.db' # Or path to database file if using sqlite3.
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with
Eu também tenho para testar efeitos de todos adicionados com permissões completas.
Mas como eu digo eu recebo o seguinte erro:
sqlite3.OperationalError: unable to open database file
Qualquer ajuda é apreciada,
Andrew
Solução
Eu não acho que você pode usar um caminho total janelas para acessar seu banco de dados SQLite. Já corri alguns testes aqui e a única maneira que eu poderia usar um banco de dados sqlite3 no Django não no mesmo diretório do projeto estava usando DATABASE_NAME = '../anotherfolder/db.db' (este foi localizado em c: \ anotherfolder \ e projeto foi localizado em c: \ mydjangoproject)
Outras dicas
Eu sei que esta questão já tem uma resposta aceita, mas eu acho que você perdeu alguma coisa. Você deve usar cordas matérias quando suas cordas contêm barras invertidas:
DATABASE_NAME = r'C:\Software\Sqlite\databases\blog.db'
Isto é o que acontece se você não usar uma corda crua:
>>> print 'C:\Software\Sqlite\databases\blog.db'
C:\Software\Sqlite\databaselog.db
A suposição é que o arquivo não está realmente em que dir. Se você tem UAC habilitado Windows 7 vai fazer parecer que o arquivo está no local (ele vai aparecer no Windows Explorer). No entanto, o arquivo é realmente armazenado em c:. \ Users \ yourusername \ AppData \ Local \ VirtualStore \ Software \ SQLite \ bancos de dados ou um local semelhante
Tenha um olhar para as permissões da pasta. Pode seus arquivos regulares usuário editar lá?
Inverta as barras no DATABASE_NAME:
de C:\Software\Sqlite\databases\blog.db
para
C:/Software/Sqlite/databases/blog.db
Estou usando o Django 1.4 no Win7 e esta foi a solução para mim - o arquivo não precisa existir
Invertendo as barras no nome do banco resolveu o problema para mim.