246 lines
9.5 KiB
XML
246 lines
9.5 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
|
|
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
|
|
http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-1">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_JOGOS" />
|
|
</not>
|
|
</preConditions>
|
|
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE TABLE TB_MATHEUS_MEDEIROS_JOGOS (
|
|
CODIGO NUMERIC(10) NOT NULL,
|
|
TITULO VARCHAR(150) NOT NULL,
|
|
GENERO VARCHAR(30) NOT NULL,
|
|
ANO_LANCAMENTO NUMERIC(4) NOT NULL,
|
|
PRODUTORA VARCHAR(50) NOT NULL,
|
|
DESCRICAO VARCHAR(500) NOT NULL,
|
|
CONSTRAINT PK_MM_JOGOS PRIMARY KEY (CODIGO),
|
|
CONSTRAINT CK_MM_JOGOS_ANO
|
|
CHECK (ANO_LANCAMENTO BETWEEN 1970 AND EXTRACT(YEAR FROM CURRENT_DATE)),
|
|
CONSTRAINT CK_MM_JOGOS_TITULO
|
|
CHECK (LENGTH(TITULO) BETWEEN 3 AND 100)
|
|
);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-2">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<sequenceExists sequenceName="TB_MATHEUS_MEDEIROS_JOGOS_SEQ" />
|
|
</not>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_JOGOS_SEQ
|
|
START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-4">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_AVALIACOES" />
|
|
</not>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE TABLE TB_MATHEUS_MEDEIROS_AVALIACOES (
|
|
CODIGO NUMERIC(10) NOT NULL,
|
|
NOME VARCHAR(100) NOT NULL,
|
|
EMAIL VARCHAR(150) NOT NULL,
|
|
COMENTARIO VARCHAR(1000) NOT NULL,
|
|
NOTA NUMERIC(4,2) NOT NULL,
|
|
DATA_AVALIACAO DATE DEFAULT CURRENT_DATE NOT NULL,
|
|
ID_JOGO NUMERIC(10) NOT NULL,
|
|
CONSTRAINT PK_MM_AVALIACOES PRIMARY KEY (CODIGO),
|
|
CONSTRAINT FK_MM_AVAL_JOGO
|
|
FOREIGN KEY (ID_JOGO)
|
|
REFERENCES TB_MATHEUS_MEDEIROS_JOGOS (CODIGO),
|
|
CONSTRAINT CK_MM_AVAL_NOTA
|
|
CHECK (NOTA BETWEEN 0 AND 10)
|
|
);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-3">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<sequenceExists sequenceName="TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ" />
|
|
</not>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ
|
|
START WITH 1 INCREMENT BY 1 CACHE 1 NO CYCLE;
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<!-- ========================================================= -->
|
|
<!-- NOVOS CHANGESETS - SEM ALTERAR OS ANTIGOS -->
|
|
<!-- ========================================================= -->
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-5">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_JOGOS"/>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
ALTER COLUMN TITULO TYPE VARCHAR(100);
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
ALTER COLUMN DESCRICAO DROP NOT NULL;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
ALTER COLUMN CODIGO SET DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_JOGOS_SEQ');
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-6">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_JOGOS"/>
|
|
<not>
|
|
<columnExists tableName="TB_MATHEUS_MEDEIROS_JOGOS" columnName="NOTA_MEDIA"/>
|
|
</not>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
ADD COLUMN NOTA_MEDIA NUMERIC(3,1);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-7">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_JOGOS"/>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="true">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
DROP CONSTRAINT IF EXISTS CK_MM_JOGOS_NOTA_MEDIA;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_JOGOS
|
|
ADD CONSTRAINT CK_MM_JOGOS_NOTA_MEDIA
|
|
CHECK (
|
|
NOTA_MEDIA IS NULL
|
|
OR NOTA_MEDIA BETWEEN 0 AND 10
|
|
);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-8">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_AVALIACOES"/>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN COMENTARIO TYPE VARCHAR(300);
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN COMENTARIO DROP NOT NULL;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN NOTA TYPE NUMERIC(3,1);
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN NOTA DROP NOT NULL;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN DATA_AVALIACAO TYPE TIMESTAMP;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN DATA_AVALIACAO SET DEFAULT CURRENT_TIMESTAMP;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ALTER COLUMN CODIGO SET DEFAULT NEXTVAL('TB_MATHEUS_MEDEIROS_AVALIACOES_SEQ');
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-9">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_AVALIACOES"/>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="true">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
DROP CONSTRAINT IF EXISTS CK_MM_AVAL_NOTA;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ADD CONSTRAINT CK_MM_AVAL_NOTA
|
|
CHECK (
|
|
NOTA IS NULL
|
|
OR NOTA BETWEEN 0 AND 10
|
|
);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-10">
|
|
<preConditions onError="WARN" onFail="MARK_RAN">
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_AVALIACOES"/>
|
|
</preConditions>
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="true">
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
DROP CONSTRAINT IF EXISTS UK_MM_AVAL_EMAIL_JOGO;
|
|
|
|
ALTER TABLE TB_MATHEUS_MEDEIROS_AVALIACOES
|
|
ADD CONSTRAINT UK_MM_AVAL_EMAIL_JOGO
|
|
UNIQUE (EMAIL, ID_JOGO);
|
|
</sql>
|
|
</changeSet>
|
|
<!-- Tabela de vendas de jogos -->
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-11" objectQuotingStrategy="LEGACY">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<tableExists tableName="TB_MATHEUS_MEDEIROS_VENDAS_JOGOS"/>
|
|
</not>
|
|
</preConditions>
|
|
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE TABLE TB_MATHEUS_MEDEIROS_VENDAS_JOGOS (
|
|
ID NUMERIC(10) NOT NULL,
|
|
ID_JOGO NUMERIC(10) NOT NULL,
|
|
QTD_VENDIDA NUMERIC(10) NOT NULL,
|
|
PRECO_UN NUMERIC(12,2) NOT NULL,
|
|
VALOR_TOTAL NUMERIC(14,2) NOT NULL,
|
|
VENDEDOR VARCHAR(100) NOT NULL,
|
|
NOME_CLIENTE VARCHAR(150) NOT NULL,
|
|
NOME_LOJA VARCHAR(150) NOT NULL,
|
|
DTA_VENDA TIMESTAMP NOT NULL,
|
|
|
|
CONSTRAINT PK_MM_VENDAS_JOGOS
|
|
PRIMARY KEY (ID),
|
|
|
|
CONSTRAINT FK_MM_VENDAS_JOGO
|
|
FOREIGN KEY (ID_JOGO)
|
|
REFERENCES TB_MATHEUS_MEDEIROS_JOGOS (CODIGO),
|
|
|
|
CONSTRAINT CK_MM_VENDAS_QTD
|
|
CHECK (QTD_VENDIDA > 0),
|
|
|
|
CONSTRAINT CK_MM_VENDAS_PRECO
|
|
CHECK (PRECO_UN >= 0),
|
|
|
|
CONSTRAINT CK_MM_VENDAS_TOTAL
|
|
CHECK (VALOR_TOTAL >= 0)
|
|
);
|
|
</sql>
|
|
</changeSet>
|
|
|
|
<!-- Sequência para geração automática do ID -->
|
|
<changeSet author="matheus.medeiros" id="matheus.medeiros-12">
|
|
<preConditions onError="WARN" onFail="MARK_RAN" onSqlOutput="IGNORE">
|
|
<not>
|
|
<sequenceExists
|
|
sequenceName="TB_MATHEUS_MEDEIROS_VENDAS_JOGOS_SEQ"/>
|
|
</not>
|
|
</preConditions>
|
|
|
|
<sql endDelimiter=";" splitStatements="true" stripComments="false">
|
|
CREATE SEQUENCE TB_MATHEUS_MEDEIROS_VENDAS_JOGOS_SEQ
|
|
START WITH 1
|
|
INCREMENT BY 1
|
|
CACHE 1
|
|
NO CYCLE;
|
|
</sql>
|
|
</changeSet>
|
|
|
|
</databaseChangeLog> |