Giter Site home page Giter Site logo

python-ibmdb-django's Introduction

Getting started with IBM DB Django adapter

IBM DB2 support for the Django application Framework

ibm_db_django enables access to IBM DB2 from Django applications [http://www.djangoproject.com/]

The adapter has been developed and is supported by IBM

Prerequisites for Django on Python

  • Install Python 2.7 or Python 3 <= 3.10. The minimum python version supported by driver is python 2.7 and the latest version supported is python 3.10 except version 3.3 as it has reached end-of-life.
  • Django Framework 2.2.0 or 3.1 or 3.2
  • regex package version >= 2020.7.14
  • IBM_DB driver and IBM_DB_DBI wrapper 1.0 or higher
     Install ibm_db driver with below commands:
         Linux and Windows: 
           pip install ibm_db
         Mac:
    	    pip install --no-cache-dir ibm_db
    

Installation

1. Install Django

Install Django as per instructions from the Django [http://docs.djangoproject.com/en/dev/topics/install/#installing-an-official-release website].

2. Install DB2 Django adapter (ibm_db_django)

For Django 2.2,
	$ pip install ibm_db_django==1.3.0.0  
	(or)
For Django 3.1,
	$ pip install ibm_db_django==1.4.0.0  
	(or)
For Django 3.2,
	$ pip install ibm_db_django>=1.5.0.0  

Tested Operating Systems

  • Ubuntu Linux 7.04 64 bit
  • Win64/Win32 bit
  • Mac OS

Supported Databases

  • IBM DB2 Database for Linux, Unix and Windows, version 8.2 or higher.

Future Supported Databases

  • IBM Cloudscape
  • Apache Derby
  • IBM Informix Cheetah version 11.10 onwards
  • Remote connections to i5/OS (iSeries)

Testing

 * Create a new Django project by executing "django-admin.py startproject myproj".
 * Now go to this newly create directory, and edit settings.py file to access DB2.
 * In case of nix the steps will be like:
  {{{
  $ django-admin.py startproject myproj
  $ cd myproj
  $ vi settings.py
  }}}
 * The settings.py will be like (after adding DB2 properties):
   {{{
   DATABASES = {
      'default': {
         'ENGINE'     : 'ibm_db_django',
         'NAME'       : 'mydb',
         'USER'       : 'db2inst1',
         'PASSWORD'   : 'ibmdb2',
         'HOST'       : 'localhost',
         'PORT'       : '50000',
         'PCONNECT'   :  True,      #Optional property, default is false
      }
   }
   }}}
   
 * Change USE_TZ to False
 
 * RUN python manage.py migrate
 
 * In the tuple INSTALLED_APPS in settings.py add the following lines:
   {{{
   'django.contrib.flatpages',
   'django.contrib.redirects',
   'django.contrib.comments',
   'django.contrib.admin',
   }}}
 * Next step is to run a simple test suite. To do this just execute following command in the project we created earlier:
   {{{
   $ python manage.py test #for Django-1.5.x or older
   $ Python manage.py test django.contrib.auth #For Django-1.6.x onwards, since test discovery behavior have changed
   }}} 
 * For Windows, steps are same as above. In case of editing settings.py file, use notepad (or any other) editor.

Database Transactions

Known Limitations of ibm_db_django adapter

  • Non-standard SQL queries are not supported. e.g. "SELECT ? FROM TAB1"
  • dbshell will not work if server is remote and client is DB2 thin client.
  • For updations involving primary/foreign key references, the entries should be made in correct order. Integrity check is always on and thus the primary keys referenced by the foreign keys in the referencing tables should always exist in the parent table.
  • DB2 Timestamps do not support timezone aware information. Thus a Datetime field including tzinfo(timezone aware info) would fail.

Feedback/Support

Your feedback is very much appreciated and expected through project ibm-db:

Contributing to the ibm_db-django python project

See CONTRIBUTING

The developer sign-off should include the reference to the DCO in remarks(example below): DCO 1.1 Signed-off-by: Random J Developer [email protected]

python-ibmdb-django's People

Contributors

2kays avatar akhilravuri1 avatar bimalkjha avatar hemlatabhatt avatar jospaul1 avatar kadler avatar mariobriggs avatar mizi avatar praveen-db2 avatar rpriyadh avatar sabakauser avatar vyshakh18 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.