72 lines
2.8 KiB
SQL
72 lines
2.8 KiB
SQL
-- ================================================================
|
|
-- 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!
|