# copy_to_energy_prices.py import mysql.connector import sys from mysql.connector import Error def copy_data(): source_conn = None dest_conn = None # ---- Gegevens voor de BRON-database (alfen) ---- source_db_config = { 'host': '127.0.0.1', 'database': 'alfen', 'user': 'alfen_user', 'password': '5uVgr%f%s2P5GR@3q!', 'port': 3307 } # ---- Gegevens voor de DOEL-database (energy_prices) ---- # VUL DEZE GEGEVENS ZELF IN dest_db_config = { 'host': '127.0.0.1', 'database': 'energy_prices', 'user': 'energy_prices_user', 'password': 'kS9R*xp17ZwCD@CV&E^N', 'port': 3307 } try: # 1. Maak verbinding met de bron-database (alfen) source_conn = mysql.connector.connect(**source_db_config) # 2. Maak verbinding met de doel-database (energy_prices) dest_conn = mysql.connector.connect(**dest_db_config) if source_conn.is_connected() and dest_conn.is_connected(): source_cursor = source_conn.cursor(dictionary=True) # dictionary=True maakt 'row['column_name']' mogelijk dest_cursor = dest_conn.cursor() # 3. Selecteer de data van VANDAAG uit de 'alfen' database # We gaan ervan uit dat de API (stroomprijs_vandaag) data voor vandaag levert print("Data selecteren uit 'alfen' database...") select_query = "SELECT datetime, provider_code, price FROM dynamic_price_data WHERE DATE(datetime) = CURDATE()" source_cursor.execute(select_query) rows_to_copy = source_cursor.fetchall() if not rows_to_copy: print("Geen data van vandaag gevonden in 'alfen' om te kopiƫren.") return print(f"{len(rows_to_copy)} rijen gevonden om te kopiƫren.") # 4. Voer de data in in de 'energy_prices' database insert_query = """ INSERT INTO dynamic_price_data (datetime, provider_code, price) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE price = %s """ copied_count = 0 for row in rows_to_copy: try: data_tuple = (row['datetime'], row['provider_code'], row['price'], row['price']) dest_cursor.execute(insert_query, data_tuple) copied_count += 1 except Error as e: print(f"Fout bij invoeren rij {row}: {e}") # Commit de transactie naar de doel-database dest_conn.commit() print(f"Succesvol {copied_count} rijen gekopieerd naar 'energy_prices'.") except Error as e: # Stuur de foutmelding naar stderr zodat het hoofdscript dit kan opvangen print(f"Fout tijdens kopieerproces: {e}", file=sys.stderr) sys.exit(1) # Sluit af met een foutcode finally: # Sluit alle verbindingen en cursors if source_conn and source_conn.is_connected(): source_cursor.close() source_conn.close() if dest_conn and dest_conn.is_connected(): dest_cursor.close() dest_conn.close() if __name__ == "__main__": copy_data()