import os
import re
from pathlib import Path
def fix_query_macros(file_path):
with open(file_path, 'r') as f:
content = f.read()
original_content = content
content = re.sub(r'sqlx::query!\s*\(', 'sqlx::query(', content)
content = re.sub(r'\br\.([a-zA-Z_][a-zA-Z0-9_]*)\b', r'row.get("\1")', content)
content = content.replace('row.get("get")', 'row.get')
content = content.replace('row.get("try_get")', 'row.try_get')
if content != original_content:
print(f"Fixed: {file_path}")
with open(file_path, 'w') as f:
f.write(content)
return True
return False
def main():
print("🔧 Fixing SQLx query! macros...")
rust_files = []
for crate_dir in ['crates/infrastructure', 'crates/api', 'crates/cli']:
if os.path.exists(crate_dir):
for root, dirs, files in os.walk(crate_dir):
for file in files:
if file.endswith('.rs'):
rust_files.append(os.path.join(root, file))
fixed_count = 0
for file_path in rust_files:
if 'query!' in open(file_path, 'r').read():
if fix_query_macros(file_path):
fixed_count += 1
print(f"✅ Fixed {fixed_count} files with query! macros")
if __name__ == "__main__":
main()