Skip to content

Instantly share code, notes, and snippets.

@Marceloromeugoncalves
Created April 28, 2023 18:01
Show Gist options
  • Save Marceloromeugoncalves/8cc13ef81954752d3ff1490a428e1efc to your computer and use it in GitHub Desktop.
Save Marceloromeugoncalves/8cc13ef81954752d3ff1490a428e1efc to your computer and use it in GitHub Desktop.
Utilizar um banco de dados Oracle somente leitura com Django.
# models.py
from django.db import models
class MinhaTabela(models.Model):
campo1 = models.CharField(max_length=50)
campo2 = models.CharField(max_length=50)
class Meta:
managed = False
db_table = 'NOME_DA_TABELA_ORACLE' # Defina o nome da tabela no banco de dados Oracle
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.oracle',
'NAME': 'NOME_DO_BANCO_DE_DADOS',
'USER': 'USUARIO',
'PASSWORD': 'SENHA',
'HOST': 'HOST_DO_BANCO_DE_DADOS',
'PORT': 'PORTA',
'OPTIONS': {
'read_only': True, # define a conexão como somente leitura
},
}
}
@Marceloromeugoncalves
Copy link
Author

Para criar um modelo Django somente leitura de uma tabela existente em um banco de dados Oracle, você precisará usar o recurso de modelo não gerenciado do Django. Primeiro, crie um arquivo models.py em seu aplicativo Django e configure a conexão com o banco de dados Oracle no arquivo settings.py. Em seguida, crie uma classe de modelo em seu arquivo models.py que se refere à tabela existente em seu banco de dados Oracle. Use a opção managed = False para dizer ao Django que não deve criar essa tabela, pois ela já existe no banco de dados Oracle. Observe que a opção db_table deve ser definida para o nome da tabela existente em seu banco de dados Oracle. Com isso, você pode usar a classe de modelo MinhaTabela para acessar os dados da tabela existente em seu banco de dados Oracle, mas somente em modo leitura. É importante lembrar que, como os dados são somente leitura, não é possível fazer atualizações ou inserções na tabela através desse modelo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment