Невозможно изменить длину VARCHAR, используя панд и sqlalchemy
Я использую панды, чтобы динамически вставлять наборы данных в базу данных Redshift.
Но так как я пытаюсь изменить длину поля VARCHAR, похоже, это не работает.
import pandas as pd
import sqlalchemy
engine = sqlalchemy.create_engine("postgresql://credentials")
df = pd.DataFrame([[1,2,3,4,5,6,7], ['a','b','a','c','a','a','a']])
df.to_sql('test_table',con=engine,
if_exists = 'append',
schema='test_schema',
index = False,
dtype={'0': sqlalchemy.types.VARCHAR(length=500)})
В PSQL, когда я прошу \d test
, он возвращает:
Table "test_schema.test_table"
Column | Type | Modifiers
-------+------------------------+-----------
0 | character varying(256) |
1 | character varying(256) |
2 | character varying(256) |
3 | character varying(256) |
4 | character varying(256) |
5 | character varying(256) |
6 | character varying(256) |
Колонка 0
все еще принимает только 256 символов.