Implement unified API standard v1.0 across backend and frontend, enhancing error handling, response formatting, and monitoring capabilities. Refactor viewsets for consistent CRUD operations and introduce API Monitor for endpoint health checks. Update migrations to ensure database integrity and remove obsolete constraints and fields. Comprehensive test suite created to validate new standards and functionality.
This commit is contained in:
@@ -10,18 +10,62 @@ class Migration(migrations.Migration):
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='systemstatus',
|
||||
unique_together=None,
|
||||
# Remove unique_together constraint if it exists and table exists
|
||||
migrations.RunSQL(
|
||||
"""
|
||||
DO $$
|
||||
BEGIN
|
||||
-- Drop unique constraint if table and constraint exist
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.tables
|
||||
WHERE table_name = 'igny8_system_status'
|
||||
) AND EXISTS (
|
||||
SELECT 1 FROM pg_constraint
|
||||
WHERE conname LIKE '%systemstatus%tenant_id%component%'
|
||||
) THEN
|
||||
ALTER TABLE igny8_system_status DROP CONSTRAINT IF EXISTS igny8_system_status_tenant_id_component_key;
|
||||
END IF;
|
||||
END $$;
|
||||
""",
|
||||
reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='systemstatus',
|
||||
name='tenant',
|
||||
# Only remove field if table exists
|
||||
migrations.RunSQL(
|
||||
"""
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.tables
|
||||
WHERE table_name = 'igny8_system_status'
|
||||
) AND EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'igny8_system_status' AND column_name = 'tenant_id'
|
||||
) THEN
|
||||
ALTER TABLE igny8_system_status DROP COLUMN IF EXISTS tenant_id;
|
||||
END IF;
|
||||
END $$;
|
||||
""",
|
||||
reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='SystemLog',
|
||||
),
|
||||
migrations.DeleteModel(
|
||||
name='SystemStatus',
|
||||
# Delete models only if tables exist
|
||||
migrations.RunSQL(
|
||||
"""
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.tables
|
||||
WHERE table_name = 'igny8_system_logs'
|
||||
) THEN
|
||||
DROP TABLE IF EXISTS igny8_system_logs CASCADE;
|
||||
END IF;
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.tables
|
||||
WHERE table_name = 'igny8_system_status'
|
||||
) THEN
|
||||
DROP TABLE IF EXISTS igny8_system_status CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
""",
|
||||
reverse_sql=migrations.RunSQL.noop
|
||||
),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user