Files
momentry_core/migrations/020_create_mac_allocations.sql
Warren b54c2def30 feat: add migrations, test scripts, and utility tools
- Add database migrations (006-028) for face recognition, identity, file_uuid
- Add test scripts for ASR, face, search, processing
- Add portal frontend (Tauri)
- Add config, benchmark, and monitoring utilities
- Add model checkpoints and pretrained model references
2026-04-30 15:11:53 +08:00

55 lines
1.8 KiB
PL/PgSQL

-- Migration: Create mac_allocations table for MAC-based resource allocation
-- Purpose: MAC address binding for license and resource control
-- Date: 2026-04-27
-- Create mac_allocations table (simplified version for MVP)
CREATE TABLE IF NOT EXISTS mac_allocations (
mac_address VARCHAR(17) PRIMARY KEY,
machine_name VARCHAR(100),
license_key VARCHAR(64),
is_active BOOLEAN DEFAULT true,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
-- Add comments
COMMENT ON TABLE mac_allocations IS
'MAC address resource allocation: license binding and machine identification';
COMMENT ON COLUMN mac_allocations.mac_address IS
'Network interface MAC address (format: a1:b2:c3:d4:e5:f6)';
COMMENT ON COLUMN mac_allocations.machine_name IS
'Human-readable machine name (e.g., MacBook-Pro)';
COMMENT ON COLUMN mac_allocations.license_key IS
'License key bound to this MAC address';
COMMENT ON COLUMN mac_allocations.is_active IS
'Whether this MAC is currently active';
-- Create indexes
CREATE INDEX IF NOT EXISTS idx_mac_allocations_license
ON mac_allocations(license_key);
CREATE INDEX IF NOT EXISTS idx_mac_allocations_active
ON mac_allocations(is_active);
-- Insert default MAC allocation for current machine (placeholder)
-- Actual MAC address will be inserted during first registration
-- INSERT INTO mac_allocations (mac_address, machine_name, license_key, is_active)
-- VALUES ('<actual_mac>', 'MacBook-Pro', 'demo_license', true);
-- Update trigger for updated_at
CREATE OR REPLACE FUNCTION update_mac_allocations_updated_at()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER trigger_mac_allocations_updated_at
BEFORE UPDATE ON mac_allocations
FOR EACH ROW
EXECUTE FUNCTION update_mac_allocations_updated_at();