Django débutant problème: manage.py dbsync
Je suis sur ubuntu 9.04 32b et a obtenu django de Synaptics.
Mon settings.py est configuré pour une base de données sqlite3.
J'ai été par le biais de ce tutoriel et a obtenu l'erreur suivante lorsque vous essayez d'exécuter la commande python manage.py syncdb
:
Traceback (most recent call last): Fichier "manage.py", la ligne 11, en execute_manager(paramètres) Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", ligne 340, dans execute_manager utilitaire.execute() Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", la ligne 295, dans exécuter auto.fetch_command(sous-commande).run_from_argv(de soi.argv) Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", ligne 192, dans run_from_argv auto.execute(*args, **options.__dict__) Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py" de ligne, 219, dans exécuter sortie = auto.la poignée(*args, **options) Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py" de ligne, 348, dans la poignée retour auto.handle_noargs(**options) Le fichier "/usr/local/lib/python2.6/dist-packages/django/core/management/commands/syncdb.py", ligne 51, dans handle_noargs curseur = connexion.curseur() Le fichier "/usr/local/lib/python2.6/dist-packages/django/db/backends/__init__.py", la ligne 56, curseur curseur = auto._cursor(paramètres) Le fichier "/usr/local/lib/python2.6/dist-packages/django/db/backends/sqlite3/base.py", ligne 145, dans _cursor auto.connexion = Base de données.connect(**kwargs) sqlite3.OperationalError: impossible d'ouvrir le fichier de base de données
Faire ce que quelqu'un a une idée sur mon problème ?
OriginalL'auteur | 2009-07-05
Vous devez vous connecter pour publier un commentaire.
Dans settings.py êtes-vous en utilisant un chemin relatif vers le fichier sqlite?
Si vous êtes, essayez de modifier que d'un chemin absolu.
exemple, au lieu de:
utilisation
C'est presque toujours le problème. Python ne fait pas dans le chemin de l'expansion lorsqu'il lit ces.
OriginalL'auteur JosefAssad
Cela peut également se produire si votre nom de base de données est le même que le nom de votre projet. Pour corriger, il suffit de changer le nom de votre base de données, par exemple en ajoutant un .db pour le NOM. Donc, si votre NOM de BASE de données dans settings.py a 'epic_project' changer en " epic_project.db'
Long et ennuyeux explication:
Si vous commencez votre projet en cours d'exécution:
votre structure de dossier sera comme ceci:
si alors, dans votre settings.py vous définissez votre base de données:
quand
s'exécute, il tente d'ouvrir ou créer un fichier de base de données sqlite /chemin/vers/epic_project/epic_project, mais il y a un répertoire de là, il dit "ah ok le chemin d'accès existe déjà, nous allons l'ouvrir comme un sqlite db", malheureusement pour sqlite c'est un répertoire et non pas un DB, donc il pleure et django présente ces larmes que "sqlite3.OperationalError: impossible d'ouvrir le fichier de base de données"
OriginalL'auteur JobJob
peut-être un problème de permission, est-ce que votre utilisateur a les droits d'écriture sur le dossier? par exemple, si vous ne
au lieu de cela, elle fonctionne?
OriginalL'auteur oscarkuo
De Google souci:
Le chemin d'accès à la base de données doit être le chemin complet vers le fichier --- pas seulement le répertoire où le fichier de vie.
OriginalL'auteur Raj
J'ai eu le même problème sur Windows alors réalisé que syncdb ne serait pas de créer le dossier s'il n'existe pas déjà. J'avais spécifié
c:/mysite/db/sqlite3.db
dans les paramètres, mais le/db/
dossier n'existait pas. Créé il dans le terminal puis re-couru syncdb avec succès.OriginalL'auteur Drake
J'ai eu le même problème il y a deux jours. Je l'ai résolu en paramètre le NOM de la BASE de données du dictionnaire (settings.py) pour le chemin d'accès absolu.
Par exemple.
settings.py
ici, vous pouvez définir la DATABASE_PATH en haut de la settings.py en tant que tel
(Pas sûr si cela fonctionne pour windows)
Pour Windows, vous pourriez avoir à utiliser la méthode replace. (Pas sûr .. Mais vous pouvez l'essayer comme suit)
En va de même pour la DATABASE_PATH.
PS. Corrigez-moi si je me trompe.
OriginalL'auteur BigFatProgrammer
Similaire à répondre de user104264 - point de vue différent...
Actuellement suite à la YouTube tutoriel j'ai eu le même message d'erreur. Me semble que lors de l'exécution de la manage.py dans un virtualenv projet django répertoire ...chemin d'accès virtuel env.../django_project/, le nom de la base à l'intérieur de /myapp/settings.py était tout simplement " de stockage.db' donc
(django-v)...chemin d'accès virtuel env projet.../django_project/>python manage.py syncdb
créé ...chemin d'accès virtuel env projet.../django_project/de stockage.db
-Projet de loi
OriginalL'auteur Bill Thayer
Si vous spécifiez un chemin d'accès complet au fichier de base de données et rencontrez toujours des problèmes, essayez de mettre une r avant que la chaîne.
ie.
'C:\\home\\usr\\mysite\\sqlite3.db'
il n'est pas le signe d'une expression régulière. Il indique à python de la traiter comme une raw littéral de chaîne: stackoverflow.com/a/2081708/2259303
Bah, mon mauvais. 99% du temps j'utilise c'est pour Django url donc, je l'ai coincé dans ma tête. Désolé.
pas de soucis mec! 🙂
OriginalL'auteur agconti
Le problème que j'était en cours d'exécution en a été une d'amorçage d'un problème où certains modèle de recherches ont été menées à l'importation (en dehors de toute classe ou d'une fonction). Pour les docs, c'est une mauvaise idée.
OriginalL'auteur Tom