Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

django with liquibase migrations

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 liquimigrate
Octocat-spinner-32 tests
Octocat-spinner-32 .gitignore
Octocat-spinner-32 MANIFEST.in
Octocat-spinner-32 Makefile
Octocat-spinner-32 README.rst
Octocat-spinner-32 mkchangelog
Octocat-spinner-32 setup.cfg
Octocat-spinner-32 setup.py
Octocat-spinner-32 version.py
README.rst

Liquibase migrations with django.

https://pypip.in/v/liquimigrate/badge.png https://pypip.in/d/liquimigrate/badge.png

Overview

  • License: BSD
  • Liquibase license: Apache 2.0
  • Author: Marek Wywiał <onjinx@gmail.com>

Quick start

  • install liquimigrate, python setup.py install
  • add 'liquimigrate' to INSTALLED_APPS
  • configure LIQUIMIGRATE_CHANGELOG_FILES = { 'default': os.path.join(os.path.dirname(__file__), "migrations", "migrations.xml") in settings }
  • ensure that you have java on your path, liquibase and java drivers are embedded into package

Usage

Just run ./management.py liquibase update or ./management.py liquibase -h

To learn how to use liquibase look at liquibase documentation:

Configuration settings

  • LIQUIMIGRATE_CHANGELOG_FILES - dictionary with paths to change log files f.e. 'os.path.join(os.path.dirname(__file__), "migrations", "migrations.xml")' for every database connection you need to maintain using liquimigrate
  • old method is still supported: LIQUIMIGRATE_CHANGELOG_FILE - path to change log file f.e. 'os.path.join(os.path.dirname(__file__), "migrations", "migrations.xml")'
  • LIQUIMIGRATE_DATABASE - selected database - default 'default'

How it works

Database settings are got from DATEBASES, from key 'default' or key configured in settings.py as LIQUIMIGRATE_DATABASE.

Changelog path are got from LIQUIMIGRATE_CHANGELOG_FILES or from command line (check -h).

Supported drivers:
  • postgresql
  • mysql
  • more in future

Development

Whole command code is put in:
  • liquimigrate/management/commands/liquibase.py
  • java connectors are stored in liquimigrate/vendor/connectors
  • available drivers mapping is stored in liquimigrate/__init__.py
  • mapping to create db url for drivers is stored in liquimigrate/management/commands/liquibase.py in DB_DEFAULTS
Something went wrong with that request. Please try again.