diff --git a/backend/scripts/migrate_sleep_data.py b/backend/scripts/migrate_sleep_data.py index 45bf3a9..9697e8f 100644 --- a/backend/scripts/migrate_sleep_data.py +++ b/backend/scripts/migrate_sleep_data.py @@ -1,10 +1,11 @@ import sqlite3 +import argparse from datetime import datetime, timedelta SOURCE_DB = 'backend/data/upload.db' DEST_DB = 'backend/data/sleep.db' -def migrate(): +def migrate(offset_minutes: int = 0): try: src_conn = sqlite3.connect(SOURCE_DB) src_cur = src_conn.cursor() @@ -13,6 +14,8 @@ def migrate(): dest_cur = dest_conn.cursor() print(f"Connecting to {SOURCE_DB} and {DEST_DB}...") + if offset_minutes != 0: + print(f"Applying {offset_minutes} minute offset to all timestamps.") # 1. Truncate the destination table print("Truncating sleep_session table...") @@ -38,6 +41,9 @@ def migrate(): # Convert Unix timestamp to datetime object try: start_time = datetime.fromtimestamp(timestamp_seconds) + # Apply offset + if offset_minutes != 0: + start_time += timedelta(minutes=offset_minutes) except Exception as e: print(f"Error converting timestamp {timestamp_seconds}: {e}") error_count += 1 @@ -105,4 +111,8 @@ def migrate(): if 'dest_conn' in locals(): dest_conn.close() if __name__ == "__main__": - migrate() + parser = argparse.ArgumentParser(description="Migrate sleep data from source DB to destination DB.") + parser.add_argument("--offset", type=int, default=0, help="Minute offset to apply to all timestamps.") + args = parser.parse_args() + + migrate(offset_minutes=args.offset)