Seite 1 von 1
sqlite3 - einfach nur eien leere datenbank anlegen
Verfasst: Montag 18. Juni 2007, 16:16
von Costi
ich hab von datenbanken wirklich keine ahnung ( ;
also...
ich will nichts weiter als eine sqlite3 datenbank-datei erstelle, django macht dan hofentlich schon den rest
danke
Verfasst: Montag 18. Juni 2007, 16:24
von rafael
Einfach irgendeinen File erstellen.
unter Unix.
Re: sqlite3 - einfach nur eien leere datenbank anlegen
Verfasst: Montag 18. Juni 2007, 16:55
von gerold
Costi hat geschrieben:ich will nichts weiter als eine sqlite3 datenbank-datei erstelle
Hallo Costi!
Dieser Code hier erstellt dir eine SQLite3-Datenbank im "C:"-Root-Ordner:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
try:
# Ab Python 2.5
import sqlite3
except ImportError:
# Vor Python 2.5 --> pysqlite --> http://initd.org/tracker/pysqlite
from pysqlite2 import dbapi2 as sqlite3
# Verbindung herstellen
conn = sqlite3.connect(r"C:\neue_datenbank.s3db")
conn.close()
mfg
Gerold
Re: sqlite3 - einfach nur eien leere datenbank anlegen
Verfasst: Montag 18. Juni 2007, 17:03
von rafael
gerold hat geschrieben:Costi hat geschrieben:ich will nichts weiter als eine sqlite3 datenbank-datei erstelle
Hallo Costi!
Dieser Code hier erstellt dir eine SQLite3-Datenbank im "C:"-Root-Ordner:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
try:
# Ab Python 2.5
import sqlite3
except ImportError:
# Vor Python 2.5 --> pysqlite --> http://initd.org/tracker/pysqlite
from pysqlite2 import dbapi2 as sqlite3
# Verbindung herstellen
conn = sqlite3.connect(r"C:\neue_datenbank.s3db")
conn.close()
mfg
Gerold
Dein Codesnippet verbindet doch zu einer schon existierenden Datenbank. Wenn man diese noch nicht erstellt hat, passiert das hier:
Code: Alles auswählen
In [1]: from sqlite3 import connect
In [2]: conn = connect('~/neue_datenbank.s3db')
---------------------------------------------------------------------------
<class 'sqlite3.OperationalError'> Traceback (most recent call last)
/home/rafael/<ipython console> in <module>()
<class 'sqlite3.OperationalError'>: unable to open database file
Verfasst: Montag 18. Juni 2007, 17:10
von Sr4l
Da gibt es keine Unterschied.
Wenn man den Code ausführt und keine DB da ist erstellt er sie, sonst connectet er nur.
Es liegt wohl an deinem '~' ?
Hast du absoluter Pfad ausprobiert?
Verfasst: Montag 18. Juni 2007, 17:12
von rafael
Ok, mit absolutem Pfad klappts.
Verfasst: Montag 18. Juni 2007, 18:17
von Costi
hmm irgendwie scheint irgendwas immer noch nicht zu funzen:
ich bekomme folgenden fehler:
Code: Alles auswählen
OperationalError at /write/das ist bla/
no such table: helo_text
ich habe eine app die ``helo`` heist in diese befindet sich ein model namens ``Text`` mit einen attribut ``text`` vom typ ``CharField``
und die aufgerufene view sieht folgendermassen aus:
Code: Alles auswählen
def write(req, text):
t = Text(text=text)
t.save()
return HttpResponse('text "' + text + '" wurde gespeicherrt')
der auruf von ``python manage.py syncdb`` fuehrte allerdings zu keinen fehler
vieleicht wist ihr was hier nicht geklappt hat.....
ps:
@admins: darf meine signatur "Bombing for peace is like fucking for virginity" lauten oder waere das zu vulgaer/unangebracht?
Verfasst: Montag 18. Juni 2007, 18:31
von Sr4l
Wenn laut Fehlermeldung der 'table' nicht da ist heißt das die Tabelle gibt es nicht.
Tabellen legt man z.B so an:
Code: Alles auswählen
import sqlite3
con = sqlite3.connect('mydatabase.db')
cur = con.cursor()
cur.execute('CREATE TABLE foo (o_id INTEGER PRIMARY KEY, fruit VARCHAR(20), veges VARCHAR(30))')
Die Tabelle heißt hier foo.
Verfasst: Montag 18. Juni 2007, 18:34
von Costi
hmmm klingt logisch ( ;
also hat django (das web framework das iich benutze) mir noch keine erstellt, bzw mit welchen befehl tut er das ?
Verfasst: Montag 18. Juni 2007, 19:17
von rafael
http://www.djangobook.com/en/beta/chapter05/
Wenn du deine Application in der settings.py hast und ``manage.py syncdb`` ausgeführt hast, müsste die Tabelle eigentlich erstellt sein.
Zeig uns am besten mal dein Model und die Imports...
Verfasst: Montag 18. Juni 2007, 19:42
von Costi
Wenn du deine Application in der settings.py hast
nein, hatte ich nicht !
bug fixed
(wie war das explicit is better than implicit ; )