MySQL Database versioning toolset
Project description
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
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6014b092a7fdfdf48e0de6ecc8f16a05460baaddc84b82707a64dfedecac0eb7 |
|
MD5 | 2d580c74c5b7444a43399bc70e84a634 |
|
BLAKE2b-256 | 61ae577af2c8129f3e3420de7653ad3c1ac51e8a7b7d406592a34b51da31cf54 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06ba76722c5ec7a863dd47237d95b33fb4374c8b8bc2572c7cdb7b3c4f9e2285 |
|
MD5 | 7ca0e65ceb4d35de6d838a11befc2163 |
|
BLAKE2b-256 | b22ca9d9ec665dd1342ea35fe7a419cecc2230a42f419ede47f92c5910efebb2 |