U
    ÿäh8
  ã                   @   sZ  d dl Z d dlmZ d dlZd dlmZ eƒ  e de ¡ ¡Ze 	d¡r¾e 
dd¡ d¡Zed   d¡Zed	  d
¡Zed   d¡Zed  Zed	 Zed  Zeeƒd	kr°ed	 ndZed	 Znedƒ ed	ƒ e jeeeeedZe ¡ Zedƒ e d¡ e ¡ D ]:Zeed  › ded	 › ded r0ed nd› dƒ qedƒ e d¡ e ¡ D ]:Zeed  › ded	 › ded r†ed nd› dƒ qZedƒ e d¡ edƒ e ¡ D ]"Zeded  › ded	 › ƒ q¸e d¡ edƒ e ¡ D ]"Zeded  › ded	 › ƒ qöedƒ e d¡ e ¡ d  Z ed e › ƒ e !¡  e !¡  dS )!é    N)ÚConfig)Úload_dotenvÚDATABASE_URLzpostgresql://Ú ú@ú:é   ú/Z5432zInvalid database URL)ÚhostÚportÚdatabaseÚuserÚpasswordz=== DEVELOPERS TABLE SCHEMA ===z£
    SELECT column_name, data_type, character_maximum_length
    FROM information_schema.columns
    WHERE table_name = 'developers'
    ORDER BY ordinal_position
z: z (é   zN/Aú)z&
=== ACTIVITY_RECORDS TABLE SCHEMA ===z©
    SELECT column_name, data_type, character_maximum_length
    FROM information_schema.columns
    WHERE table_name = 'activity_records'
    ORDER BY ordinal_position
z%
=== CHECKING DEVELOPER_ID VALUES ===zˆ
    SELECT DISTINCT developer_id, pg_typeof(developer_id) 
    FROM activity_records 
    WHERE developer_id IS NOT NULL 
    LIMIT 10
z1Sample developer_id values from activity_records:z
  Value: 'z	', Type: z‚
    SELECT DISTINCT developer_id, pg_typeof(developer_id) 
    FROM developers 
    WHERE developer_id IS NOT NULL 
    LIMIT 10
z,
Sample developer_id values from developers:z+
=== CHECKING FOR NUMERIC DEVELOPER_IDS ===zw
    SELECT COUNT(*) 
    FROM activity_records 
    WHERE developer_id IS NOT NULL 
    AND developer_id ~ '^[0-9]+$'
z-Activity records with numeric developer_ids: )"Zpsycopg2Zconfigr   ÚosZdotenvr   ÚgetenvZget_database_urlr   Ú
startswithÚreplaceÚsplitÚpartsZ	user_passZhost_dbZ	host_portr   r   r
   Úlenr   r   ÚprintÚexitZconnectZconnZcursorZcurZexecuteZfetchallÚrowZfetchoneZnumeric_countÚclose© r   r   ú./check_db_types.pyÚ<module>   s`   

û
8
8
 
 
