File tree Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Expand file tree Collapse file tree 1 file changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ def _create_table(
69
69
index : bool ,
70
70
dtype : dict [str , str ] | None ,
71
71
varchar_lengths : dict [str , int ] | None ,
72
+ primary_keys : list [str ] | None = None ,
72
73
) -> None :
73
74
if mode == "overwrite" :
74
75
_drop_table (cursor = cursor , schema = schema , table = table )
@@ -83,6 +84,8 @@ def _create_table(
83
84
converter_func = _data_types .pyarrow2postgresql ,
84
85
)
85
86
cols_str : str = "" .join ([f"{ _identifier (k )} { v } ,\n " for k , v in postgresql_types .items ()])[:- 2 ]
87
+ if primary_keys :
88
+ cols_str += f",\n primary key ({ ', ' .join ([_identifier (k ) for k in primary_keys ])} )"
86
89
sql = f"CREATE TABLE IF NOT EXISTS { _identifier (schema )} .{ _identifier (table )} (\n { cols_str } )"
87
90
_logger .debug ("Create table query:\n %s" , sql )
88
91
cursor .execute (sql )
@@ -586,6 +589,7 @@ def to_sql(
586
589
index = index ,
587
590
dtype = dtype ,
588
591
varchar_lengths = varchar_lengths ,
592
+ primary_keys = upsert_conflict_columns ,
589
593
)
590
594
if index :
591
595
df .reset_index (level = df .index .names , inplace = True )
You can’t perform that action at this time.
0 commit comments