Files
windmill/backend/overwrite_migrations.py
2025-09-02 20:15:37 +00:00

29 lines
911 B
Python
Executable File

import sys
import os
import subprocess
database_url = sys.argv[1]
print(f"database_url: {database_url}")
if database_url is None:
print("Please provide a database url")
sys.exit(1)
for f in os.listdir("migrations"):
if f.endswith(".up.sql"):
version = f.split("_")[0]
cmd = f"cat migrations/{f} | openssl dgst -sha384 | cut -d ' ' -f 2"
ps = subprocess.Popen(
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
digest = ps.communicate()[0].decode("utf-8").strip()
cmd = f"psql '{database_url}' -c \"UPDATE _sqlx_migrations SET checksum = '\\x{digest}' WHERE version = {version};\""
ps = subprocess.Popen(
cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT
)
out = ps.communicate()[0].decode("utf-8").strip()
print(f, cmd)
print(version, digest, out)