Metadata-Version: 2.1
Name: dr_data
Version: 0.0.3
Summary: Utility tool that populates random or CSV data to your database for development purposes
Home-page: https://github.com/sunnysidesounds/dr_data
Author: Jason R Alexander
Author-email: sunysidesounds@gmail.com
License: MIT
Project-URL: Documentation, https://github.com/sunnysidesounds/dr_data/blob/main/README.md
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Provides-Extra: testing
License-File: LICENSE.txt

# Doctor Data

```bash

usage: dr-data [-h] [-transplant] [-source SOURCE] [-destination DESTINATION] [-inject] [-rows ROWS] [-biopsy] [-export EXPORT] [-cleanse] [-config CONFIG]

Dr. Data is a database utility tool that can populate random data based on your schema or can import custom CSV data. See options below

optional arguments:
-h, --help            show this help message and exit
-transplant           Insert one or all CSV files to table
-source SOURCE        Used in conjuctions with `transplant` The CSV source file or directory. if directory, csv filenames need to match table names
-destination DESTINATION Used in conjuctions with `transplant` and `source`. if `source` is a file. destination TABLE is required
-inject               Inserts one or many randomly regenerated rows
-rows ROWS            How may rows do you want to load per table in the database, default is set in configuration
-biopsy               Explicitly exports a schema and table insertion-order JSON files
-export EXPORT        The directory PATH to export the JSON files
-cleanse              Truncates all the values in the database
-config CONFIG        configuration file or set DRDATA_CONFIG=<path> env variable
```
## Prerequisite
- python 3.9.1

## Install
```bash
git clone https://github.com/sunnysidesounds/dr-data
cd dr-data
python setup.py install
dr-data -h
```

## Usage
1. Create a `dr_data.json` file with these values and set `DRDATA_CONFIG=<path>` env variable or using `-config=<path>`  parameter
```bash
{
   "db":{
      "host":"localhost",
      "database":"<db_name>",
      "user":"<db_user>",
      "password":"<db_password>"
   }
}
```
2. Then run one of the procedure commands (-inject, -transplant, -cleanse, -biopsy)

## Examples
Example 1: `-inject` random row data into the database
```bash
dr-data -inject -rows=100
```

Example 2: `-transplant` directory with CSV files (multiple CSV files)
Note: CSV columns need to be named the name as the database column names. 
```bash
dr-data -transplant -source=/path/to/source/directory
```

Example 3: `-transplant` one CSV files (single CSV file)
Note: CSV columns need to be named the name as the database column names.
```bash
dr-data -transplant -source=</path/to/source/file.csv> -destination=<table_name>
```

Example 4: `-biopsy` the database, produces a schema.json and insertion-order-schema.json files
```bash
dr-data -biopsy -export=</path/to/export/directory/>
```

Example 5: `-cleanse` the database of all data.
Warning: This can't be undone.
```bash
dr-data -cleanse
```


## Dev Note
venv/bin/tox -e build
venv/bin/pip install -e .

1. `git commit -m "Initial Commit" . `
2. `git tag 0.0.1`
3. `git push origin main`
4. `git push --tags`
    - This will create a release package in github
    - Check under branch dropdown, tags to find the tag you pushed.
5. Build documentation `tox -e docs`
6. Check version number after git push `venv/bin/python setup.py --version` --> Should be v0.0.1
7. `tox -e build`
8. `tox -e publish` Publishes to test.pypi.org
9. Test install `pip install -i https://test.pypi.org/simple/ dr_data`




