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()