---
title: "How to integrate Django with a legacy database"
version: 5.1
locale: pt-br
source: https://docs.djangoproject.com/pt-br/5.1/howto/legacy-databases/
canonical: https://djangodocs.dev/pt-br/5.1/howto/legacy-databases/
---
# How to integrate Django with a legacy database

Enquanto o Django é melhor para desenvolver novas aplicações, é possível integrá-lo a um banco de dados existente. O Django inclue algumas ferramentas para automatzar tanto quanto possível o processo.

Este documento assume que você conhece o básico de django, como coberto em [tutorial](/pt-br/5.1/intro/tutorial01/).

Uma vez que tenha o Django configurado, seguirá este processo geral para integrar com o banco de dados existente.

## Forneça ao Django os parâmetros do seu banco de dados.

Você precisa informar ao Django quais são ps parâmetros de conexão do seu banco de dados, e o nome do banco de dados. Faça isso editando a definição [`DATABASES`](/pt-br/5.1/ref/settings/#std-setting-DATABASES) e assinalando os valores das seguintes chaver para a conexão `'default'`:

- [`NAME`](/pt-br/5.1/ref/settings/#std-setting-NAME)
- [`ENGINE`](/pt-br/5.1/ref/settings/#std-setting-DATABASE-ENGINE)
- [`USER`](/pt-br/5.1/ref/settings/#std-setting-USER)
- [`PASSWORD`](/pt-br/5.1/ref/settings/#std-setting-PASSWORD)
- [`HOST`](/pt-br/5.1/ref/settings/#std-setting-HOST)
- [`PORT`](/pt-br/5.1/ref/settings/#std-setting-PORT)

## Criar automaticamente os modelos

Django comes with a utility called [`inspectdb`](/pt-br/5.1/ref/django-admin/#django-admin-inspectdb) that can create models
by introspecting an existing database. You can view the output by running this
command:

```shell
$ python manage.py inspectdb
```

Save this as a file by using standard Unix output redirection:

```shell
$ python manage.py inspectdb > models.py
```

Este comandoé um atalho, não um gerador de modelos definitivos. Veja o [`documentation of inspectdb`](/pt-br/5.1/ref/django-admin/#django-admin-inspectdb) para mais informações.

Uma vez que tenha limpado seus modelos, nomeie  arquivo models.py\`\`e coloque-o no pacote Python que contém sua aplicação. Entã adicione a app dentro da sua definição de [`INSTALLED_APPS`](/pt-br/5.1/ref/settings/#std-setting-INSTALLED_APPS).

Por padrão, o [`inspectdb`](/pt-br/5.1/ref/django-admin/#django-admin-inspectdb) cria modelos não gerenciáveis. Quer dizer, `managed = False` na `Meta` classe do modelo, diz ao Django para não gerenciar a criação, modificação e deleção  de cada tabela:

```
class Person(models.Model):
    id = models.IntegerField(primary_key=True)
    first_name = models.CharField(max_length=70)

    class Meta:
        managed = False
        db_table = "CENSUS_PERSONS"
```

If you do want to allow Django to manage the table’s lifecycle, you’ll need to
change the [`managed`](/pt-br/5.1/ref/models/options/#django.db.models.Options.managed) option above to `True`
(or remove it because `True` is its default value).

## Instalando as Tabelas do núcleo do Django.

Next, run the [`migrate`](/pt-br/5.1/ref/django-admin/#django-admin-migrate) command to install any extra needed database
records such as admin permissions and content types:

```shell
$ python manage.py migrate
```

## Teste e ajustes

Estes são os passos básicos – daqui em diante você irá querer ajustar os modelos que o Django gerou até que funcionem do jeito que você goste. Tente acessar seus dados através da API de banco de dados do Django, e tente editá-los via o site admin do Django, e edite o arquivo de modelo de acordo.
