Is it possible to regenerate all the image formats?

yeah. I wrote a python code.

import psycopg2
import json

conn = psycopg2.connect(host="localhost", database="example", user="postgres", password="XXXX", port="5432")


def replace_bucket_url(file_id):
    cur = conn.cursor()
    cur.execute("SELECT formats FROM files WHERE id = %s", [file_id])
    file = cur.fetchone()

    formats_dict: dict = file[0]

    if formats_dict is None:
        return

    if formats_dict.get("large"):
        formats_dict["large"]["url"] = formats_dict["large"]["url"].replace(
            "https://bucket.domain.xyz/bucket",
            "https://uploads.domain.com",
        )

    if formats_dict.get("medium"):
        formats_dict["medium"]["url"] = formats_dict["medium"]["url"].replace(
            "https://bucket.domain.xyz/bucket",
            "https://uploads.domain.com",
        )

    if formats_dict.get("small"):
        formats_dict["small"]["url"] = formats_dict["small"]["url"].replace(
            "https://bucket.domain.xyz/bucket",
            "https://uploads.domain.com",
        )

    if formats_dict.get("thumbnail"):
        formats_dict["thumbnail"]["url"] = formats_dict["thumbnail"]["url"].replace(
            "https://bucket.domain.xyz/bucket",
            "https://uploads.domain.com",
        )

    formats_json = json.dumps(formats_dict)

    cur.execute("UPDATE files SET formats = %s WHERE id = %s", [formats_json, file_id])
    cur.execute("COMMIT")


def main():
    cur = conn.cursor()

    # Get the data from the database
    files_response = cur.execute("SELECT id,formats FROM files")
    files_response = cur.fetchall()

    for file in files_response:
        replace_bucket_url(file_id=file[0])


if __name__ == "__main__":
    main()