env¶
DatabaseDotEnv¶
- class msdss_base_database.env.DatabaseDotEnv(driver='MSDSS_DATABASE_DRIVER', user='MSDSS_DATABASE_USER', password='MSDSS_DATABASE_PASSWORD', host='MSDSS_DATABASE_HOST', port='MSDSS_DATABASE_PORT', database='MSDSS_DATABASE_NAME', env_file='./.env', key_path=None, defaults={'database': 'msdss', 'driver': 'postgresql', 'host': 'localhost', 'password': 'msdss123', 'port': '5432', 'user': 'msdss'})[source]¶
Class to manage database environment variables.
Extends
msdss_base_dotenv.core.DotEnv
- Parameters
env_file (str) – The path of the file with environmental variables.
key_path (str) – The path of the key file for the
env_file
.defaults (dict) –
Default values for below parameters if they are not set:
<parameter> = <default> driver = postgresql user = msdss password = msdss123 host = localhost port = 5432 database = msdss
driver (str) – The environmental variable name for
driver
.user (str) – The environmental variable name for
user
.password (str) – The environmental variable name for
password
.host (str) – The environmental variable name for
key
.port (str) – The environmental variable name for
port
.database (str) – The environmental variable name for
database
.
Author
Richard Wen <rrwen.dev@gmail.com>
Example
from msdss_base_database.env import DatabaseDotEnv # Create the default database env env = DatabaseDotEnv(env_file='./.env', key_path='./.env.key') # Save default database env env.save() # Load default database env env.load() # See defaults print('default_env:\n') for k, name in env.mappings.items(): value = str(env.get(k)) print(f'{name}: {value}') # Remove all env files env.clear() # Create database env with diff host, port, and database var names # Also set diff defaults new_env = DatabaseDotEnv( host='MSDSS_DATABASE_HOST_B', port='MSDSS_DATABASE_PORT_B', database='MSDSS_DATABASE_DATABASE_B', defaults = dict( host='localhost', database='msdss2' ) ) # Set MSDSS_DATABASE_PORT_B new_env.set('port', '5432') # Set MSDSS_DATABASE_HOST_B, but delete it afterwards new_env.set('host', 'invalid-host') new_env.delete('host') # Check if MSDSS_DATABASE_HOST_B is set host_is_set = new_env.is_set('host') # See new env print('\nnew_env:\n') for k, name in new_env.mappings.items(): value = str(new_env.get(k)) print(f'{name}: {value}') print('host_is_set: ' + str(host_is_set)) # Save new env in a file new_env.save() # Load the new env new_env.load() # Remove the new env files new_env.clear()
default_env: MSDSS_DATABASE_DRIVER: postgresql MSDSS_DATABASE_USER: msdss MSDSS_DATABASE_PASSWORD: msdss123 MSDSS_DATABASE_HOST: localhost MSDSS_DATABASE_PORT: 5432 MSDSS_DATABASE_NAME: msdss new_env: MSDSS_DATABASE_DRIVER: None MSDSS_DATABASE_USER: None MSDSS_DATABASE_PASSWORD: None MSDSS_DATABASE_HOST_B: localhost MSDSS_DATABASE_PORT_B: 5432 MSDSS_DATABASE_DATABASE_B: msdss2 host_is_set: False