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'):
variables = {
'DB_PASSWORD': '',
'DB_USER': 'postgres',
'DB_HOST': 'localhost',
'DB_PORT': '5432',
'DB_NAME': 'data',
'DATALAKE_PASS': 'postgresql://postgres:password@localhost:5432/mydatabase',
}
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():
if clave not in lineas_existentes:
archivo.write(f'{clave}={valor}\n')
agregar_a_gitignore()
print(f'Archivo {nombre_archivo} creado correctamente.')
+6 -9
View File
@@ -12,20 +12,17 @@ import pandas as pd
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:
conn (psycopg2.extensions.connection): Objeto de conexión a la base de datos.
"""
conn = psycopg2.connect(
host=host,
dbname=dbname,
user=user,
password=password,
port=port
)
conn = psycopg2.connect(connection_string)
return conn