-- ================================================================ -- MIGRATION v2.0 - Sistema de Transformações e Gerenciamento -- Dental Image Server - PostgreSQL -- ================================================================ -- Execute este arquivo no banco PostgreSQL: -- psql -U postgres -d postgres -f migration-v2-postgres.sql -- (Este arquivo assume que você está criando a base primeiro, e em seguida rodando na base) -- ================================================================ -- PARTE 1: CRIAR BANCO -- ================================================================ -- O Postgres não permite CREATE DATABASE dentro de um bloco de transação ou se já existir tão fácil, -- recomenda-se executar CREATE DATABASE dental_images fora do script ou se conectar diretamente nele após. -- CREATE DATABASE dental_images; -- \c dental_images -- ================================================================ -- PARTE 2: CRIAR TABELA USERS -- ================================================================ CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, password_hash TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- ================================================================ -- PARTE 3: CRIAR TABELA IMAGES -- ================================================================ CREATE TABLE IF NOT EXISTS images ( id SERIAL PRIMARY KEY, image_guid VARCHAR(255) NOT NULL, patient_name TEXT, client_name VARCHAR(100), original_filename TEXT, filename TEXT NOT NULL, enabled SMALLINT DEFAULT 1, tooth_number VARCHAR(10), tooth_side VARCHAR(10), patient_name_resumed VARCHAR(50), original_image_id INT, rotation INT DEFAULT 0, flip_horizontal SMALLINT DEFAULT 0, flip_vertical SMALLINT DEFAULT 0, doctor VARCHAR(255), remark TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (original_image_id) REFERENCES images(id) ON DELETE SET NULL ); -- ================================================================ -- PARTE 4: CRIAR ÍNDICES -- ================================================================ CREATE INDEX IF NOT EXISTS idx_images_enabled ON images(enabled); CREATE INDEX IF NOT EXISTS idx_images_original ON images(original_image_id); CREATE INDEX IF NOT EXISTS idx_patient_name ON images(patient_name); CREATE INDEX IF NOT EXISTS idx_image_guid ON images(image_guid); CREATE INDEX IF NOT EXISTS idx_client_name ON images(client_name); CREATE INDEX IF NOT EXISTS idx_created_at ON images(created_at); -- ================================================================ -- PARTE 5: VALIDAÇÃO FINAL -- ================================================================ -- Migration completed successfully!