🔧 Add missing model fields and fake migration for Railway schema sync

## Critical Model/Database Sync Fix

**Problem**: Railway database has access_url_name/display_url_name columns but Django model didn't define them.

**Solution**:
 Add missing fields to Agent model with proper Django field definitions
 Create fake migration to sync with existing Railway database schema
 Avoid DuplicateColumn errors on Railway deployment

## Changes Made

**Agent Model** ():
- Added
- Added

**Migration** ():
- Fake migration that does nothing (columns already exist on Railway)
- Marks migration as applied without attempting to create existing columns

## Error Fixed
 Was: Invalid field name(s) for model Agent: 'access_url_name', 'display_url_name'
 Now: Model defines fields that match existing Railway database columns

## Result
- Django model matches Railway PostgreSQL schema
- Agent creation commands will work (fields are now valid)
- populate_agents will succeed and create all 5 agents
- Railway marketplace will finally show agents

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Claude 2025-08-04 16:36:00 +05:30
parent fb085f215a
commit 10f7e0d11e
2 changed files with 25 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# Generated by Django 5.2.4 on 2025-08-04 11:05
from django.db import migrations
def fake_migration(apps, schema_editor):
"""
Fake migration - Railway database already has access_url_name and display_url_name columns
but Django model didn't have them defined. Now model has fields, so we just need to
mark this migration as applied without doing anything.
"""
pass
class Migration(migrations.Migration):
dependencies = [
("agents", "0004_add_message_limit"),
]
operations = [
migrations.RunPython(fake_migration, fake_migration),
]

View File

@ -33,6 +33,8 @@ class Agent(models.Model):
form_schema = models.JSONField(help_text="JSON schema for agent input form", null=True, blank=True)
webhook_url = models.URLField(help_text="n8n webhook URL for execution")
message_limit = models.IntegerField(default=50, help_text="Maximum messages per chat session (for chat agents)")
access_url_name = models.CharField(max_length=100, blank=True, default='', help_text="URL name for direct access agents")
display_url_name = models.CharField(max_length=100, blank=True, default='', help_text="URL name for agent display page")
is_active = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)