---
title: "FAQ: Bancos de Dados e modelos"
version: 6.1
locale: pt-br
source: https://docs.djangoproject.com/pt-br/6.1/faq/models/
canonical: https://djangodocs.dev/pt-br/6.1/faq/models/
---
# FAQ: Bancos de Dados e modelos

## Como posso ver as consultas SQL que o Django está executando?

Assegure-se que sua configuração do Django [`DEBUG`](/pt-br/6.1/ref/settings/#std-setting-DEBUG) está configurada para `True`. Então faça isso:

```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” só está disponível se [`DEBUG`](/pt-br/6.1/ref/settings/#std-setting-DEBUG) for `True`. É uma lista de dicionários em ordem de execução da querie. Cada dicionário possui o seguinte:

- `sql` \- A instrução SQL bruta
- `time` \- Quanto tempo a instrução levou para ser executada, em segundos.

`connection.queries` incluem todas as instruções SQL -  INSERTs, UPDATEs, SELECTs etc. Cada vez que seu aplicativo atinge o banco de dados a consulta será gravada.

Se você estiver usando [multiple databases](/pt-br/6.1/topics/db/multi-db/), você pode usar a mesma interface em cada membro do `dicionário` de conexões:

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

Se você precisar limpar uma lista de consulta em qualquer ponto das suas funções, chame o método `reset_queries()`, dessa maneira:

```
from django.db import reset_queries

reset_queries()
```

## Posso usar o Django com um banco de dados preexistente?

Sim. Veja a documentação: [Integrando com um banco de dados legado](/pt-br/6.1/howto/legacy-databases/).

## Como eu faço para atualizar o banco de dados, se eu fizer alterações em um modelo?

Dê uma olhada no suporte do Django para [`migrações de schema`](/pt-br/6.1/topics/migrations/#module-django.db.migrations).

Se você não se importa de limpar os dados, o utilitário `manage.py` do seu projeto tem uma opção [`flush`](/pt-br/6.1/ref/django-admin/#django-admin-flush) para redefinir o banco de dados para o estado em que estava imediatamente depois que o [`migrate`](/pt-br/6.1/ref/django-admin/#django-admin-migrate) foi executado.

## O modelo do Django suporta chaves primárias de várias colunas?

Partially. See [Composite primary keys](/pt-br/6.1/topics/composite-primary-key/).

## Django suporta banco de dados NoSQL?

Os bancos de dados NoSQL não são oficialmente suportados pelo Django. Há, entretanto, um número amplo de projetos e forks que permitem as funcionalidades do NoSQL no Django.

Você pode olhar na página wiki - que discute alguns projetos.

## Como eu adiciono uma opção específica de base de dados à minha cláusula CREATE TABLE, tipo especificando MyISAM como tipo de tabela?

Nós tentamos evitar ao adicionar casos excepcionais ao código do Django para acomodar todas as opções específicas de cada banco de dados, como: tipo de tabela e etc. . Se você quiser usar qualquer uma destas opções específicas crie uma rotina de migração com a classe [`RunSQL`](/pt-br/6.1/ref/migration-operations/#django.db.migrations.operations.RunSQL) contendo a instrução `ALTER TABLE` e realizando a operação que você deseja.

Por exemplo, se você está usando MySQL e quiser que suas tabelas usem a tabela do tipo MyISAM, use a seguinte instrução SQL:

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