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.

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 e assinalando os valores das seguintes chaver para a conexão 'default':

Criar automaticamente os modelos

Django comes with a utility called inspectdb that can create models by introspecting an existing database. You can view the output by running this command:

$ python manage.py inspectdb

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

$ python manage.py inspectdb > models.py

Este comandoé um atalho, não um gerador de modelos definitivos. Veja o documentation of 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.

Por padrão, o 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 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 command to install any extra needed database records such as admin permissions and content types:

$ 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.