Skip to content

weynelucas/django-db-adapter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPi version

django-db-adapter

A configurable database backend for Oracle

Requirements

django-db-adapter was tested with the following requirements:

The following packages are optional:

  • progressbar2 (3.34.0+) - Used only to display progress during sqlmigrateall command

Installation

Install using pip, including any optional packages you want...

pip install django-db-adapter 

...or clone the project from github.

git clone https://github.com/weynelucas/django-db-adapter.git 

Add 'db_adapter' at the top of your INSTALLED_APPS setting.

INSTALLED_APPS = ( ..., 'db_adapter' )

Quickstart

Any global settings for a django-db-adapter are kept in a single configuration dictionary named DB_ADAPTER

DB_ADAPTER = { 'SCHEMA': 'CONN_ORCL', 'ALLOWED_BACKENDS': ['oracle'], 'PREFIX': { 'TABLE': 'tb_', 'FOREIGN_KEY': 'ce_', 'INDEX': 'ix_', 'UNIQUE': 'ct_', 'TRIGGER': 'tg_', 'SEQUENCE': 'sq_' } }

You must setting the connection parameter ENGINE from DATABASES with the custom oracle database backend to apply your DB_ADAPTER settings.

DATABASES = { 'default': { 'ENGINE': 'db_adapter.db.backends.oracle', 'NAME': 'mydatabase', 'USER': 'mydatabaseuser', 'PASSWORD': 'mypassword', 'HOST': '127.0.0.1', 'PORT': '1521' } }

Settings

Configuration for django-db-adapter is all namespaced inside a single Django setting, named DB_ADAPTER.

If you need to access the values of db_adapter settings in your project, you should use the settings object. For example.

from db_adapter.config import settings print(settings.SCHEMA) print(settings.PREFIX['TABLE'])

Global settings

SCHEMA

Default: None

String with user schema name of you database connection. This value will be appended to all database queries.

ALLOWED_BACKENDS

Default: [ '*' ]

List of database backends names allowed to perform non-oracle actions. Add table prefixes and the command sqlmigrateall are actions that not require a oracle backend. If a backend are not present on list, theese action will not be performed.

Options are: 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite' or * for allow all backends to perform non-oracle actions

PREFIX

Default:

{ 'TABLE': 'tb_', 'FOREIGN_KEY': 'fk_', 'INDEX': 'ix_', 'UNIQUE': 'uniq_', 'TRIGGER': 'tg_', 'SEQUENCE': 'sq_' }

Default prefix mapping for all database objects. This configuration allow backend to create DDL commands applying theese prefixes for each database object.

CREATE TABLE "TB_PERSON" ("ID" NUMBER(11) NOT NULL PRIMARY KEY, "NAME" NVARCHAR2(255) NULL); DECLARE i INTEGER; BEGIN SELECT COUNT(1) INTO i FROM USER_SEQUENCES WHERE SEQUENCE_NAME = 'SQ_PERSON'; IF i = 0 THEN EXECUTE IMMEDIATE 'CREATE SEQUENCE "SQ_PERSON"'; END IF; END; /;

Release Notes

  • 1.0.0 - 16/04/2018 - First release
  • 1.0.1 - 16/04/2018 - Rename package and fix setup issues
  • 1.0.2 - 17/04/2018 - Fix documentation preview

About

A flexible toolkit for customize how Django creates the database objects for the application schema

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages