- Updated python_coding_microproject.csv to use NVIDIA NIM Kimi K2 - Updated kali_linux_shell_simulator.csv to use NVIDIA NIM Kimi K2 - Made more general-purpose (flexible targets, expanded tools) - Added nemotron-mini-agent.csv for fast local inference via Ollama - Added nemotron-agent.csv for advanced reasoning via Ollama - Added wiki page: Projects for NVIDIA NIMs and Nemotron
107 lines
4.5 KiB
PL/PgSQL
107 lines
4.5 KiB
PL/PgSQL
-- Migration T001: Rename 'teams' table to 'tenants' for semantic clarity
|
|
-- Date: November 6, 2025
|
|
--
|
|
-- RATIONALE:
|
|
-- The 'teams' table is misnamed - it stores TENANT metadata (one row per tenant),
|
|
-- not user collaboration teams. This rename eliminates confusion and frees up the
|
|
-- 'teams' name for actual user collaboration features.
|
|
--
|
|
-- IMPACT:
|
|
-- - Renames table: teams → tenants
|
|
-- - Renames all foreign key columns: team_id → tenant_id
|
|
-- - Updates all constraints and indexes
|
|
-- - NO DATA LOSS - purely structural rename
|
|
--
|
|
-- IDEMPOTENT: Can be run multiple times safely
|
|
-- ROLLBACK: See rollback script: T001_rollback.sql
|
|
|
|
-- Note: When run via docker exec, we're already connected to gt2_tenants
|
|
-- So we don't use \c command here
|
|
|
|
SET search_path TO tenant_test_company, public;
|
|
|
|
BEGIN;
|
|
|
|
-- Idempotency wrapper: Only run if migration hasn't been applied yet
|
|
DO $$
|
|
DECLARE
|
|
teams_exists BOOLEAN;
|
|
tenants_exists BOOLEAN;
|
|
BEGIN
|
|
-- Check if old 'teams' table exists and new 'tenants' table doesn't
|
|
SELECT EXISTS (
|
|
SELECT FROM information_schema.tables
|
|
WHERE table_schema = 'tenant_test_company'
|
|
AND table_name = 'teams'
|
|
) INTO teams_exists;
|
|
|
|
SELECT EXISTS (
|
|
SELECT FROM information_schema.tables
|
|
WHERE table_schema = 'tenant_test_company'
|
|
AND table_name = 'tenants'
|
|
) INTO tenants_exists;
|
|
|
|
IF teams_exists AND NOT tenants_exists THEN
|
|
RAISE NOTICE 'Migration T001: Applying teams → tenants rename...';
|
|
|
|
-- Step 1: Rename the table
|
|
ALTER TABLE teams RENAME TO tenants;
|
|
|
|
-- Step 2: Rename foreign key columns in all dependent tables
|
|
ALTER TABLE users RENAME COLUMN team_id TO tenant_id;
|
|
ALTER TABLE agents RENAME COLUMN team_id TO tenant_id;
|
|
ALTER TABLE datasets RENAME COLUMN team_id TO tenant_id;
|
|
ALTER TABLE conversations RENAME COLUMN team_id TO tenant_id;
|
|
ALTER TABLE documents RENAME COLUMN team_id TO tenant_id;
|
|
ALTER TABLE document_chunks RENAME COLUMN team_id TO tenant_id;
|
|
|
|
-- Step 3: Rename foreign key constraints
|
|
ALTER TABLE users RENAME CONSTRAINT users_team_id_fkey TO users_tenant_id_fkey;
|
|
ALTER TABLE agents RENAME CONSTRAINT agents_team_id_fkey TO agents_tenant_id_fkey;
|
|
ALTER TABLE datasets RENAME CONSTRAINT datasets_team_id_fkey TO datasets_tenant_id_fkey;
|
|
ALTER TABLE conversations RENAME CONSTRAINT conversations_team_id_fkey TO conversations_tenant_id_fkey;
|
|
ALTER TABLE documents RENAME CONSTRAINT documents_team_id_fkey TO documents_tenant_id_fkey;
|
|
ALTER TABLE document_chunks RENAME CONSTRAINT document_chunks_team_id_fkey TO document_chunks_tenant_id_fkey;
|
|
|
|
-- Step 4: Rename indexes
|
|
ALTER INDEX IF EXISTS idx_teams_domain RENAME TO idx_tenants_domain;
|
|
ALTER INDEX IF EXISTS idx_users_team_id RENAME TO idx_users_tenant_id;
|
|
ALTER INDEX IF EXISTS idx_agents_team_id RENAME TO idx_agents_tenant_id;
|
|
ALTER INDEX IF EXISTS idx_datasets_team_id RENAME TO idx_datasets_tenant_id;
|
|
ALTER INDEX IF EXISTS idx_conversations_team_id RENAME TO idx_conversations_tenant_id;
|
|
ALTER INDEX IF EXISTS idx_documents_team_id RENAME TO idx_documents_tenant_id;
|
|
ALTER INDEX IF EXISTS idx_document_chunks_team_id RENAME TO idx_document_chunks_tenant_id;
|
|
|
|
RAISE NOTICE '✅ Migration T001 applied successfully!';
|
|
RAISE NOTICE ' - Table renamed: teams → tenants';
|
|
RAISE NOTICE ' - Columns renamed: team_id → tenant_id (6 tables)';
|
|
RAISE NOTICE ' - Constraints renamed: 6 foreign keys';
|
|
RAISE NOTICE ' - Indexes renamed: 7 indexes';
|
|
|
|
ELSIF NOT teams_exists AND tenants_exists THEN
|
|
RAISE NOTICE '✅ Migration T001 already applied (tenants table exists, teams table renamed)';
|
|
ELSIF teams_exists AND tenants_exists THEN
|
|
RAISE WARNING '⚠️ Migration T001 in inconsistent state: both teams and tenants tables exist!';
|
|
RAISE WARNING ' Manual intervention may be required.';
|
|
ELSE
|
|
RAISE WARNING '⚠️ Migration T001 cannot run: neither teams nor tenants table exists!';
|
|
RAISE WARNING ' Check if schema is properly initialized.';
|
|
END IF;
|
|
END $$;
|
|
|
|
COMMIT;
|
|
|
|
-- Verification query
|
|
DO $$
|
|
DECLARE
|
|
tenant_count INTEGER;
|
|
user_count INTEGER;
|
|
BEGIN
|
|
SELECT COUNT(*) INTO tenant_count FROM tenants;
|
|
SELECT COUNT(*) INTO user_count FROM users;
|
|
|
|
RAISE NOTICE 'Migration T001 verification:';
|
|
RAISE NOTICE ' Tenants: % rows', tenant_count;
|
|
RAISE NOTICE ' Users: % rows', user_count;
|
|
END $$;
|