Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

673
Views
Acceda a datos de una segunda base de datos SQLite externa en Django

Esta es la estructura de mi proyecto.

Estructura del proyecto

Puedo acceder a la base de datos SQLite predeterminada db.sqlite3 creada por Django, importando los modelos directamente dentro de mis archivos de vistas

Me gusta - from basic.models import table1

Ahora, tengo otra base de datos llamada UTF.db que fue creada por otra persona, y quiero acceder a sus datos y realizar operaciones normales de QuerySet en los datos recuperados.

El problema es que no sé cómo importar las tablas dentro de esa base de datos, ya que no están dentro de ningún archivo modelo dentro de mi proyecto, ya que lo creó otra persona.

Intenté agregar las tablas dentro de la base de datos UTF.db a un archivo models.py agregándolo primero al archivo settings.py como el siguiente

 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', }, 'otherdb':{ 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'UTF.db', } }

Y luego usando el comando inspectdb para agregar las tablas a un archivo models.py existente

El comando que probé: python manage.py inspectdb > models.py

Pero eso solo hace que mi archivo models.py se vacíe

¿Alguien sabe cómo se puede solucionar esto?

Al final, deseo importar los datos de la tabla dentro de mis archivos de vistas importando el modelo respectivo

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede especificar una base de datos específica como se especifica en Documentación

 python manage.py inspectdb --database=otherdb > your_app/models.py

Además, si es posible, es mejor poner otherdb en una aplicación diferente.

over 4 years ago · Santiago Trujillo Report

0

Puede adjuntar la segunda base de datos a la primera y usarla desde la primera. Puede usar tablas de ambas bases de datos en una sola consulta SQL. Aquí está el documento https://www.sqlite.org/lang_attach.html .

 attach database '/path/to/dbfile.sqlite' as db_remote; select * from some_table join db_remote.remote_table on .... detach database db_remote;
over 4 years ago · Santiago Trujillo Report

0

La respuesta de @sevdimali funciona bien para crear los nuevos modelos a partir de una base de datos existente

Una vez hecho esto, debe usar el comando:

python manage.py makemigrations

Para agregar los cambios a la carpeta de migraciones

Luego usa el comando

python manage.py migrate --fake-initial

Para agregar los nuevos cambios a su base de datos

Nota : use --fake-initial para ignorar las tablas ya creadas mientras agrega sus nuevas tablas (para que no se vuelvan a crear)

Si no hay modelos preexistentes, puede usar

python manage.py migrate

Como lo haces normalmente


Ahora, mientras importa el modelo de base de datos dentro de su vista, puede escribir

from Appname.models import Tablename

Donde Appname es la aplicación en la que agregó sus nuevos modelos

Y para acceder a sus datos

qs=Tablename.objects.using('otherdb').all()

Nota : otherdb es el nombre de la base de datos externa especificada en el archivo settings.py

¡Ahora puede acceder a todos sus datos de manera similar!

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!