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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top