Skip to main content

About

dbautomate is a Python package that provides flexible, interactive and expressive data manipulation with databases. It designed to make working with "relational" and "non-relational" databases seamless, interactive and efficient, provides a flexible and scalable solution for diverse data storage and retrievel needs.

Table of Contents

Main Features

Here are some of the key features of dbautomate as follows:

  • This dbautomate works with MongoDB as well as MySQL databases.
  • When working with MySQL, it can executes any query, it can insert multiple type of data, it can save the data as well.
  • When working with MongoDB, it creates database and collection, data can be insert, find, delete, and update as well, the data can be saved locally.

Where to get it

The source code is currently hosted on GitHub at: https://github.com/ravi46931/dbautomatepkg

Installation

Install via pip:

# PyPI
pip install dbautomate

Dependencies

dbautomate supports Python3.8, Python3.9, python3.11.

Installation requires:

  • pymongo
  • pymongo[srv]
  • dnspython
  • pandas
  • numpy
  • termcolor
  • mysql-connector-python
  • prettytable

How to use it

Let suppose you want to use MySQL database.

Import the library for MySQL

from dbautomate import mysqloperator

Create an instance of MySQL class

mysql_handler=mysqloperator.MySQL_connector()

Connect to MySQL Server

config = {
        'host': 'your_mysql_host',
        'user': 'your_mysql_user',
        'password': 'your_mysql_password',
        'database': 'your_database_name'
  }
conn=mysql_handler.connect_to_mysql(config, attempts=3, delay=2)
# attempts: Number of times it tries to connect the server in case of failure.
# delay: time after which next attempt will happen
# These two parameters are optional

For successful connection it gives following message:

Connected successfully....

Check the MySQL handler object

print(mysql_handler)

Output:

MySQLHandler Object -
Config: {'host': 'your_mysql_host', 'user': 'your_mysql_user', 'password': 'your_mysql_password', 'database': 'your_database_name'}
Connected: True

Execute query with MySQL

query="select * from table_name"
mysql_handler.execute_query(query)

It prints table along with successful execution message.
Query executed successfully....

+----------------+------------+
| purchase_price | sale_price |
+----------------+------------+
| 8000           | 9505       |
+----------------+------------+
| 8500           | 10105      |
+----------------+------------+
| 7000           | 8505       |
+----------------+------------+
| 10500          | 11505      |
+----------------+------------+

To insert the data in table

Insert single entry or multiple entries.

table_name='cats'
values=[
  ('Mena',5),
  ('Kena',11)
]
mysql_handler.insert_data(table_name, values)

If you want to use different database to insert the data, you can achieve this by mentioning the database.

db_name='book'
table_name='english_books'
values=[......]
mysql_handler.insert_data(table_name, values, db_name)

You can insert CSV file into the table as well.

filepath='path/to/your/data.csv'
mysql_handler.bulk_insert(table_name, filepath)
# Change the database as well
filepath='path/to/your/data.csv'
db_name='books'
mysql_handler.bulk_insert(table_name, filepath, db_name)
  1. If the first entry is autoincrement id, and you have not provided that in your input data (aka 'values' in above code) then enter 'y', but if you have provided in your input data then enter something else.
  2. If you are inserting the multiple entries then enter y.
  3. If you are inserting the single entry then enter n.

A success message shows after successful insertion of the data.
Inserted successfully....

To save the data of the table

To save the table locally from the current active database.

table_name='cats'
mysql_handler.save_data(table_name)

To save the data from the different database.

db_name='animals'
table_name='cats'
mysql_handler.save_data(table_name, db_name)

Prints the success message after the saving data.

Enter the filename: data.csv
File: 'data.csv' saved successfully....

To close the MySQL connection

mysql_handler.close_connection()

It prints successful connection close.
MySQL connection closed.

Let suppose you want to use MongoDB database.

Import the library for MongoDB

from dbautomate import mongodboperator

Create an instance of MongoDB class

mongo=mongodboperator.MongoDB_connector()

Get the client of MongoDB

uri="localhost:27017"
client=mongo.get_mongo_client(uri)

A success message prints.
Connected to MongoDB Successfully....

Create database of MongoDB

Ensure you have already created with client.

database_name='firstdb'
mongo.create_database(database_name)

After creating database it prints success message.
Database created successfully....

Create collection of mongoDB

Ensure you have already created with client and database.

collection_name='first'
mongo.create_collection(collection_name)

After creating collection it prints success message.
Collection created successfully....

To insert the data in collection

You can insert single or multiple entries.

# Single Entry
single_entry={'name':'abc', 'age':24}
mongo.insert_data(single_entry)

A success message prints.
Inserted successfully(Single entry)....

# Multiple Entries
multiple_entries=[{'name':'abc', 'age':24},{'name':'def', 'age':22}]
mongo.insert_data(multiple_entries)

A success message prints.
Data inserted successfully....

If you want to insert data from the CSV, EXCEL or JSON file, you can achieve this by following way.

# To insert the data in the current collection
mongo.bulk_insert(filepath)
# To insert the data in a new or different collection
collection_name='employee'
mongo.bulk_insert(filepath, collection_name)

A success message prints.
Data inserted successfully....

To find the data of the collection

You can find the data.

mongo.find_data()
  1. If you want to see the data in the form of DataFrame enter y.
  2. If you want to see the data in the form of List enter n.

To save the data of the collection

You can save the data locally.

mongo.save_data()

Enter the type of the file and name of the file (that you want to save).

Do you want to save the data as json file or csv file?(json/csv)json
Enter the filename: q.json
File: 'q.json' saved successfully....

To delete the data of the collection

For deleting the entire data from the collection.

mongo.delete_data()
  • Enter y if you want to delete the entire data.
  • It will delete entire data, Do you want to delete the data?(y/n): y

All entry deleted

For delete the data based on the key value.

key_value={'age':25}
mongo.delete_data(key_value)

Enter one if you want to delete the one entry else many it delete all the entry based on the key_value Do you want delete the one entry or mutiple entries?(one/many) one

Entry deleted successfully

If you choose many option then the following message will show

Multiple entries deleted successfully

To update the data of the collection

filter_criteria={'age': 25}
update_data=[{'$set': {'age':24}}]
mongo.update_data_entry(filter_criteria, update_data)

Enter one if you want to update the single entry.

Do you want single entry update on multiple?(one/many) one
Updated Successfully (one entry)...

Enter many if you want to update the multiple entries.

Do you want single entry update on multiple?(one/many) many
Updated Successfully (multiple entries)....

To close the mongo client

mongo.close_mongo_client()

After successful closing the client.
MongoDB client closed successfully..

Functionality

For more detail of each of the functions can be reed the docstrings

print(mysql_handler.insert_data.__doc__)

Development

Source code

You can check the latest sources with the command:

https://github.com/ravi46931/dbautomatepkg.git

Go to top

Metadata

Release files for dbautomate 0.5.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dbautomate 0.5.6
File Size Uploaded Provenance
dbautomate-0.5.6.tar.gz 15.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dbautomate 0.5.6
File Interpreter ABI Platform
dbautomate-0.5.6-py3-none-any.whl Python 3 none any Details

Total release size: 28.8 kB

Release files / dbautomate-0.5.6.tar.gz

Download URL dbautomate-0.5.6.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
702bb7ee517c0b74d3a00e98e5f07b451b5967a790c2d78ac40c1b3c91bc5129
BLAKE2b-256 checksum
How to use checksums
f1b1aca8b178552a23668d93459b2a6eb7ca028a7405f1ea1f4fb4bfa7e9668c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Release files / dbautomate-0.5.6-py3-none-any.whl

Download URL dbautomate-0.5.6-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2656cf800dc476bbe24e0f09c1e0756091378b977bb060a906603328c0c9b7ec
BLAKE2b-256 checksum
How to use checksums
9fbd61414c1563e0e8aed4c6d533113fd637369499e73a72660c7615d55e2329
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.18

Security for dbautomate 0.5.6

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page