Pandas version checks

  • [X] I have checked that this issue has not already been reported.

  • [X] I have confirmed this bug exists on the latest version of pandas.

  • [X] I have confirmed this bug exists on the main branch of pandas.

Reproducible Example

uuids = [uuid.uuid4() for _ in range(len(df))]
df["id"] = uuids

# engine is a Postgresql database

    df.to_sql(
        "table_name",
        engine,
        index=False,
        if_exists="append",  # Options: append, replace, fail
    )

Issue Description

In this code, we are having id column as type uuid, however, after running to_sql function, the type of the id field will be Text and not uuid.

Expected Behavior

The id column's type should be uuid.

Installed Versions

INSTALLED VERSIONS ------------------ commit : 2e218d10984e9919f0296931d92ea851c6a6faf5 python : 3.10.4.final.0 python-bits : 64 OS : Linux OS-release : 5.10.16.3-microsoft-standard-WSL2 Version : #1 SMP Fri Apr 2 22:23:49 UTC 2021 machine : x86_64 processor : byteorder : little LC_ALL : None LANG : C.UTF-8 LOCALE : en_US.UTF-8 pandas : 1.5.3 numpy : 1.24.2 pytz : 2022.7.1 dateutil : 2.8.2 setuptools : 58.1.0 pip : 22.0.4 Cython : None pytest : None hypothesis : None sphinx : None blosc : None feather : None xlsxwriter : None lxml.etree : None html5lib : None pymysql : None psycopg2 : 2.9.3 jinja2 : None IPython : None pandas_datareader: None bs4 : None bottleneck : None brotli : None fastparquet : None fsspec : None gcsfs : None matplotlib : None numba : None numexpr : None odfpy : None openpyxl : None pandas_gbq : None pyarrow : None pyreadstat : None pyxlsb : None s3fs : None scipy : None snappy : None sqlalchemy : 2.0.7 tables : None tabulate : None xarray : None xlrd : None xlwt : None zstandard : None tzdata : 2022.7

Comment From: topper-123

The id column in your dataframe is just an object dtype, so Pandas can't know that you want the Postgres column to be a uuid datatype.

This works as expected in my opinion.

Comment From: mehrdadscomputer

Agree. This was due to my lack of knowledge. People can use dtypeto fix the problem in their cases.