"""
Quick workflow script to execute all database setup steps
"""
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async def run_full_workflow(db_name="chaitanya"):
"""Run the complete database setup workflow"""
server_params = StdioServerParameters(
command="python",
args=["server.py"],
env=None
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Step 1: Create database
print(f"Step 1: Creating database '{db_name}'...")
result = await session.call_tool("create_database", arguments={"db_name": db_name})
print(f"✓ {result.content[0].text}\n")
# Step 2: Enable hstore
print(f"Step 2: Enabling hstore extension...")
result = await session.call_tool("enable_hstore", arguments={"db_name": db_name})
print(f"✓ {result.content[0].text}\n")
# Step 3: Update .env
print(f"Step 3: Updating .env file...")
result = await session.call_tool("update_env", arguments={"db_name": db_name})
print(f"✓ {result.content[0].text}\n")
# Step 4: Run Django command
print(f"Step 4: Running create_text_search_config...")
result = await session.call_tool("django", arguments={"cmd": "create_text_search_config"})
print(f"✓ Output:\n{result.content[0].text}\n")
print(f"Step 5: Running migrations...")
result = await session.call_tool("django", arguments={"cmd": "migrate"})
print(f"✓ Output:\n{result.content[0].text}\n")
print(f"Step 6: Running Update_fixtures...")
result = await session.call_tool("django", arguments={"cmd": "update_fixtures"})
print(f"✓ Output:\n{result.content[0].text}\n")
print("=" * 50)
print("✓ All steps completed successfully!")
print("=" * 50)
if __name__ == "__main__":
import sys
db_name = sys.argv[1] if len(sys.argv) > 1 else "chaitanya"
asyncio.run(run_full_workflow(db_name))