Add .env file creation script and update database connection method

- Implemented a script to create a .env file with environment variables and ensure .env is added to .gitignore.
- Modified the database connection function to accept a connection string instead of individual parameters.
This commit is contained in:
2024-11-17 03:30:13 +01:00
parent c282e5903c
commit cb7344bb03
2 changed files with 38 additions and 18 deletions
+31 -8
View File
@@ -1,16 +1,39 @@
"""
Archivo: generar_archivo_env.py
Fecha de creación: 17/11/2024
Descripción: Este script crea un archivo .env con variables de entorno y agrega .env a .gitignore si no está presente.
"""
import os
def agregar_a_gitignore(nombre_archivo='.gitignore', entrada='.env'):
if os.path.exists(nombre_archivo):
with open(nombre_archivo, 'r') as archivo:
lineas = archivo.readlines()
if entrada not in [linea.strip() for linea in lineas]:
with open(nombre_archivo, 'a') as archivo:
archivo.write(f'{entrada}\n')
else:
with open(nombre_archivo, 'w') as archivo:
archivo.write(f'{entrada}\n')
def crear_archivo_env(nombre_archivo='.env'): def crear_archivo_env(nombre_archivo='.env'):
variables = { variables = {
'DB_PASSWORD': '', 'DATALAKE_PASS': 'postgresql://postgres:password@localhost:5432/mydatabase',
'DB_USER': 'postgres',
'DB_HOST': 'localhost',
'DB_PORT': '5432',
'DB_NAME': 'data',
} }
if os.path.exists(nombre_archivo):
with open(nombre_archivo, 'r') as archivo:
lineas_existentes = archivo.readlines()
lineas_existentes = [linea.strip().split('=')[0] for linea in lineas_existentes]
else:
lineas_existentes = []
with open(nombre_archivo, 'w') as archivo: with open(nombre_archivo, 'a') as archivo:
for clave, valor in variables.items(): for clave, valor in variables.items():
if clave not in lineas_existentes:
archivo.write(f'{clave}={valor}\n') archivo.write(f'{clave}={valor}\n')
agregar_a_gitignore()
print(f'Archivo {nombre_archivo} creado correctamente.') print(f'Archivo {nombre_archivo} creado correctamente.')
+6 -9
View File
@@ -12,20 +12,17 @@ import pandas as pd
import os import os
def connect_to_db(host, dbname, user, password, port=5432): def connect_to_db(connection_string):
""" """
Establece una conexión a la base de datos PostgreSQL usando credenciales del archivo .env. Establece una conexión a la base de datos PostgreSQL usando una cadena de conexión.
Args:
connection_string (str): Cadena de conexión a la base de datos.
Returns: Returns:
conn (psycopg2.extensions.connection): Objeto de conexión a la base de datos. conn (psycopg2.extensions.connection): Objeto de conexión a la base de datos.
""" """
conn = psycopg2.connect( conn = psycopg2.connect(connection_string)
host=host,
dbname=dbname,
user=user,
password=password,
port=port
)
return conn return conn