2011-09-11 20 views
5

Estoy haciendo el archivo settings.py en el tutorial django y estoy confundido con lo que puse en el campo NOMBRE. Quiero usar SQLite, por lo que entiendo que no necesito crear nada y la base de datos se creará automáticamente. Si es así, ¿dónde se creará y cómo se llamará?¿Dónde está la base de datos SQLite creada automáticamente por django?

Intenté ejecutar manage.py syncdb y obtuve: "django.core.exceptions.ImproperlyConfigured: complete la base de datos NAME en el módulo de configuración antes de usar la base de datos."

así que supongo que debería rellenar el nombre de archivos, pero esto no es lo que he entendido en las direcciones siguientes:

https://docs.djangoproject.com/en/1.3/intro/tutorial01/

NOMBRE - El nombre de su base de datos. Si está usando SQLite, la base de datos será un archivo en su computadora; en ese caso, NAME debe ser la ruta absoluta completa, incluido el nombre de archivo, de ese archivo. Si el archivo no existe, se creará automáticamente cuando sincronice la base de datos por primera vez (ver a continuación).

Respuesta

5

Bueno, como se dice en la documentación, creará el archivo de base de datos SQLite3 en la ubicación del archivo que configura en NAME. Django no adivina pero usa la ruta del archivo que especifique allí.

Solo si utiliza algo que no sea SQLite, el NAME será el nombre de la base de datos real en el servidor de la base de datos.

+1

Intenté agregar una ruta de acceso de nombre 'NAME': '/home/Python/tutorial/mysite/sqlite3.db', y cuando ejecuté manage.py me dijo un error: sqlite3.OperationalError: no se puede abrir el archivo de base de datos –

+2

ok mi camino estaba equivocado Para cualquier persona que se enfrente a este problema, en LINUX la carpeta raíz es/home/usernameonlinux, es decir: '/ home/USERNAMEonLINUX/Python ... " –

+0

también podría hacer rutas relativas, NAME =' ./mysite.sqlite ' – djblue2009

1

Cree un archivo .db o instale sqlite en su máquina, cree un archivo de base de datos y apúntelo en settings.py debajo de NAME, por ejemplo, tengo "'/ home/username/project/chatdb' thats on linux. For windows su 'C: /homes/user/mysite/sqlite3.db'

0

de acuerdo con el actual docs (enero de 2015):

NAME – The name of your database. If you’re using SQLite, the database will be a file on your computer; in that case, NAME should be the full absolute path, including filename, of that file. The default value, os.path.join(BASE_DIR, 'db.sqlite3'), will store the file in your project directory.

como está escrito, recomiendo como Nameos.path.join(BASE_DIR, 'db.sqlite3') Por supuesto, usted tiene. para definir BASE_DIR

Cuestiones relacionadas