Pourquoi suis-je tout d'un coup se “OperationalError: no such table”?
Je suis en train de faire différentes choses avec ma base de données. Je l'ai branché et tiré des données et à la sortie des données, avec succès, pas de problèmes. J'ai été débogage d'autres questions, et puis tout à coup je ne peux plus rien en tirer de ma table de base de données - je suis "OperationalError: no such table: article".
Je suis vraiment perplexe ici - c'était très bien, j'étais l'interrogation de la bd avec pas de problèmes et d'insertion de données, etc etc. Puis soudain, je reçois cette erreur. Les changements que j'ai fait immédiatement avant l'erreur commencé à apparaître semble être totalement indépendants - j'ai défait et toujours cette erreur. Voici le début de mon script, j'obtiens le message d'erreur:
import sqlite3
database='mydatabase'
db=sqlite3.connect(database)
c=db.cursor()
sql_command='SELECT id FROM article'
idlist=c.execute(sql_command)
Je peux ouvrir cette base de données SQLite et de l'Administrateur de vérifier que la table est là. De Plus il travaillait avant. J'ai aussi essayé de vérifier que la table est en par:
>>c.execute('select name from sqlite_master where type="table"').fetchall()
[]
si quelque chose est vraiment loufoque.
J'ai aussi essayé de fermer et de rouvrir la connexion db et le curseur. Et la fermeture de la Python session. Pas de dés. À l'aide!
Vous devez vous connecter pour publier un commentaire.
vous avez déplacé votre code à un autre endroit?
parce que sqlite stocker la base de données dans un fichier, lorsque vous appelez connect, si un fichier avec le nom
'mydatabase'
existe pas, il sera chargé, sinon. un nouveau fichier de base de données sera créée automatiquement.la recherche de votre ancien fichier avec le nom
'mydatabase'
et le mettre dans votre code.database='mydatabase'
et je l'ai changé pourdatabase='full/path/to/mydatabase'
. Je ne sais toujours pas pourquoi qu'il fixe, mais il l'a fait./mydatabase
, maintenant il est à la recherche de/full/path/to/mydatabase
. Accédez à votre répertoire racine et vous trouverez une base de données vide nommé "mabase.db".J'ai eu exactement le même problème avec sqlite3 et flacon de l'accès à une base de données. J'ai changé le chemin d'accès à la base de données dans mon code pour que son chemin d'accès complet et cela a résolu le problème de données en voie de disparition et des tables de ne pas être trouvé après le redémarrage de mon flacon d'application. Je peux recommander SQLite Manager plugin firefox qui permet d'afficher des enregistrements dans les tables de base de données. Suivez ce lien pour voir un semblable problème résolu à l'aide du chemin d'accès complet des références à votre base de données Django débutant problème: manage.py dbsync
Python ne fait pas de chemin d'expansion.vous pouvez utiliser des variables d'Environnement pour stocker les chemins d'accès à votre base de données.
Lien vers WingWare de l'expansion des Variables d'Environnement
J'ai eu le problème. Dans mon cas, avant d'essayer d'accéder à la base de données, j'ai cette ligne:
Donc sqlite3 créer une base de données vide dans que dir de la place.