---
title: "FRÅGOR OCH SVAR: Databaser och modeller"
version: 6.0
locale: sv
source: https://docs.djangoproject.com/sv/6.0/faq/models/
canonical: https://djangodocs.dev/sv/6.0/faq/models/
---
# FRÅGOR OCH SVAR: Databaser och modeller

## Hur kan jag se de råa SQL-frågorna som Django kör?

Se till att din Django [`DEBUG`](/sv/6.0/ref/settings/#std-setting-DEBUG)-inställning är inställd på `True`. Gör sedan så här:

```pycon
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
```

`connection.queries` är endast tillgänglig om [`DEBUG`](/sv/6.0/ref/settings/#std-setting-DEBUG) är `True`. Det är en lista över ordböcker i frågeexekveringsordning. Varje ordbok har följande:

- `sql` \- Den obearbetade SQL-satsen
- `time` \- Hur lång tid det tog att utföra uttalandet, i sekunder.

`connection.queries` inkluderar alla SQL-satser - INSERT, UPDATES, SELECT, etc. Varje gång din app träffar databasen kommer frågan att registreras.

Om du använder [flera databaser](/sv/6.0/topics/db/multi-db/) kan du använda samma gränssnitt för varje medlem i ordlistan connections\`:

```pycon
>>> from django.db import connections
>>> connections["my_db_alias"].queries
```

Om du behöver rensa frågelistan manuellt vid någon tidpunkt i dina funktioner, anropa `reset_queries()`, så här:

```
from django.db import reset_queries

reset_queries()
```

## Kan jag använda Django med en redan befintlig databas?

Ja, se [Integrering med en äldre databas](/sv/6.0/howto/legacy-databases/).

## Om jag gör ändringar i en modell, hur uppdaterar jag då databasen?

Ta en titt på Djangos stöd för [`schemamigreringar`](/sv/6.0/topics/migrations/#module-django.db.migrations).

Om du inte har något emot att rensa data har verktyget `manage.py` i ditt projekt ett alternativ `` flush` `` som återställer databasen till det tillstånd den hade omedelbart efter att `` migrate` `` kördes.

## Har Django-modeller stöd för primärnycklar med flera kolumner?

Nej, endast primärnycklar med en kolumn stöds.

Men det här är inget problem i praktiken, eftersom det inte finns något som hindrar dig från att lägga till andra begränsningar (med hjälp av modellalternativet `unique_together` eller genom att skapa begränsningen direkt i din databas) och genomdriva unikheten på den nivån. Primärnycklar med en enda kolumn behövs för att t.ex. administratörsgränssnittet ska fungera; du behöver t.ex. ett enda värde för att ange ett objekt som ska redigeras eller tas bort.

## Har Django stöd för NoSQL-databaser?

NoSQL-databaser stöds inte officiellt av Django själv. Det finns dock ett antal sidoprojekt och förgreningar som tillåter NoSQL-funktionalitet i Django.

Du kan ta en titt på wikisidan där några projekt diskuteras.

## Hur lägger jag till databasspecifika alternativ till mina CREATE TABLE-satser, till exempel att ange MyISAM som tabelltyp?

Vi försöker undvika att lägga till specialfall i Django-koden för att tillgodose alla databasspecifika alternativ som tabelltyp etc. Om du vill använda något av dessa alternativ skapar du en migrering med en [`RunSQL`](/sv/6.0/ref/migration-operations/#django.db.migrations.operations.RunSQL) operation som innehåller `ALTER TABLE`-satser som gör vad du vill göra.

Om du t.ex. använder MySQL och vill att dina tabeller ska använda tabelltypen MyISAM använder du följande SQL:

```sql
ALTER TABLE myapp_mytable ENGINE=MyISAM;
```
