Utils

Merging Databases

The merge tool allows users to merge existing Databases in a new Database. Each Table from all Databases will be duplicated in the new Database; in the case where Databases share a common Table name, Tables will be merged in the logical order.

from SSD.Core import merge

merge(database_names=['my_Database1', 'my_Database2'],
      new_database_name='my_MergedDatabase',
      remove_existing=True)
"""
>> DATABASE my_Database1.db
     * StoringTable 'my_StoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Condition (BOOL)
     * ExchangeTable 'my_ExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)

>> DATABASE my_Database2.db
     * StoringTable 'my_StoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Color (TEXT)
     * ExchangeTable 'my_OtherExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)

>> DATABASE my_MergedDatabase.db
     * StoringTable 'my_StoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Condition (BOOL)
        - my_Color (TEXT)
     * ExchangeTable 'my_ExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)
     * ExchangeTable 'my_OtherExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)

>> Confirm new Database architecture ? (y/n):
"""

Renaming Tables and Fields

The rename_tables and rename_fields tools allows users to rename Tables and Fields in the Database. Both methods require tuples defines as (current_name, new_name):

from SSD.Core import rename_tables, rename_fields

rename_tables(database_name='my_Database',
              renamed_tables=[('my_StoringTable', 'my_NewStoringTable'), ('my_ExchangeTable', 'my_NewExchangeTable')])
"""
>> DATABASE my_Database.db
     * StoringTable 'my_NewStoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Condition (BOOL)
        - my_Color (TEXT)
     * ExchangeTable 'my_NewExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)
"""

rename_fields(database_name='my_Database',
              table_name='my_NewStoringTable',
              renamed_fields=('my_Condition', 'my_Test'))
"""
>> DATABASE my_Database.db
     * StoringTable 'my_NewStoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Test (BOOL)
        - my_Color (TEXT)
     * ExchangeTable 'my_NewExchangeTable'
        - id (AUTO) (default)
        - _dt_ (DATETIME) (default)
        - my_Data (FLOAT)
"""

Removing Tables and Fields

The remove_tables and remove_fields tools allows users to remove Tables and Fields from a Database.

from SSD.Core import remove_tables, remove_fields

rename_tables(database_name='my_Database',
              remove_tables='my_ExchangeTable')
"""
>> DATABASE my_Database.db
     * StoringTable 'my_NewStoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
        - my_Condition (BOOL)
        - my_Color (TEXT)
"""

remove_fields(database_name='my_Database',
              table_name='my_StoringTable',
              remove_fields=['my_Condition', 'my_Color'])
"""
>> DATABASE my_Database.db
     * StoringTable 'my_NewStoringTable'
        - id (AUTO) (default)
        - my_Value (FLOAT)
"""

Exporting Databases

The export tool allows users to export a Database either in CSV format either in JSON format:

from SSD.Core import export

export(database_name='my_Database',
       exporter='csv',
       filename='my_db_export',
       remove_existing=True)
"""
>> Exported my_db_export.csv
"""

export(database_name='my_Database',
       exporter='json',
       filename='my_db_export',
       remove_existing=True)
"""
>> Exported my_db_export.json
"""