Skip to main content

MySQL Database versioning toolset

Project description

AlphaDB

GitHub releases PyPI release NPM release License: GPL v3 Tests

AlphaDB

A toolset for MySQL database versioning.

Still in alpha stage

AlphaDB is currently in beta stage. Breaking changes should be expected.

Table of Contents
  1. Documentation
  2. Installation
  3. Usage
  4. Exceptions
  5. License

Documentation

Visit the official documentation

Installation

Install using PIP

pip install alphadb

Note that pip refers to the Python 3 package manager. In an environment where Python 2 is also present the correct command may be pip3.

Usage

Import AlphaDB

from alphadb import AlphaDB

Connect to a database.

db = AlphaDB()
db.connect(
    host="localhost",
    user="user",
    password="password",
    database="database"
)

Make sure the database is empty, back it up if necessary. If the database is not empty, you can use the vacate method. Note that this function will erase ALL data in the database and there is no way to get it back. For extra safety the argument confirm=True is required for the function to run.

db.vacate(confirm=True)

The database is now ready to be initialized. The init method will create the adb_conf table. This holds configuration data for the database.

db.init()

Now we update the database. For this we need to give it a structure. The database version information is a JSON structure formatted as such:

database_version_source = {
    "name": "mydb", ## Database name, does not have to, but is advised to match the actual database name
    "version": [ ## List containing database versions
        {
            "_id": "0.1.0", ## Database version
            "createtable": { ## Object containing tables to be created,
                "customers": { ## Object key will be used as table name
                    "primary_key": "id",
                    "name": { ## Object key will be used as column name
                        "type": "VARCHAR", ## Data type
                        "length": 100, ## Date max length,
                    },
                    "id": {
                        "type": "INT",
                        "a_i": True
                    }
                },
            }
        },
        {
            "_id": "1.0.0",
            "createtable": {
                "orders": {
                    "primary_key": "id",
                    "id": {
                        "type": "INT",
                        "a_i": True
                    },
                    "date": {
                        "type": "DATETIME",
                    },
                    "note": {
                        "type": "TEXT",
                        "null": True
                    }
                }
            }
        }
    ]
}

Then call the update method.

db.update(version_source=database_version_source)

Exceptions

NoConnection

The NoConnection exception is thrown when a method is called while no database connection is active.

DBNotInitialized

The DBNotInitialized exception is thrown when the database is not yet initialized.

Database.init() ## Will initialize the database and thus resolve the error

DBTemplateNoMatch

The DBTemplateNoMatch exception is thrown when de database was previously updated using another version source. On initialization, a table adb_conf is created. In this table the column template is used to save the version source template name. Make sure it matches.

License

GPL-3.0 LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alphadb-1.0.0b19.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

alphadb-1.0.0b19-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file alphadb-1.0.0b19.tar.gz.

File metadata

  • Download URL: alphadb-1.0.0b19.tar.gz
  • Upload date:
  • Size: 35.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for alphadb-1.0.0b19.tar.gz
Algorithm Hash digest
SHA256 6014b092a7fdfdf48e0de6ecc8f16a05460baaddc84b82707a64dfedecac0eb7
MD5 2d580c74c5b7444a43399bc70e84a634
BLAKE2b-256 61ae577af2c8129f3e3420de7653ad3c1ac51e8a7b7d406592a34b51da31cf54

See more details on using hashes here.

File details

Details for the file alphadb-1.0.0b19-py3-none-any.whl.

File metadata

  • Download URL: alphadb-1.0.0b19-py3-none-any.whl
  • Upload date:
  • Size: 51.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.8

File hashes

Hashes for alphadb-1.0.0b19-py3-none-any.whl
Algorithm Hash digest
SHA256 06ba76722c5ec7a863dd47237d95b33fb4374c8b8bc2572c7cdb7b3c4f9e2285
MD5 7ca0e65ceb4d35de6d838a11befc2163
BLAKE2b-256 b22ca9d9ec665dd1342ea35fe7a419cecc2230a42f419ede47f92c5910efebb2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page