diff --git a/pom.xml b/pom.xml index ca8d61a..fbc64ec 100644 --- a/pom.xml +++ b/pom.xml @@ -55,8 +55,10 @@ org.liquibase liquibase-core - - + + org.postgresql + postgresql + diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java b/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java new file mode 100644 index 0000000..bdbbccf --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/model/Role.java @@ -0,0 +1,17 @@ +package ru.ldeloff.servermonitorbot.model; + +import jakarta.persistence.*; +import lombok.Data; + +@Entity +@Data +@Table(name = "roles") +public class Role { + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long id; + + @Column(name = "role") + private String role; +} diff --git a/src/main/java/ru/ldeloff/servermonitorbot/model/User.java b/src/main/java/ru/ldeloff/servermonitorbot/model/User.java new file mode 100644 index 0000000..b4a0ddd --- /dev/null +++ b/src/main/java/ru/ldeloff/servermonitorbot/model/User.java @@ -0,0 +1,21 @@ +package ru.ldeloff.servermonitorbot.model; + +import jakarta.persistence.*; +import lombok.Data; + +@Entity +@Data +@Table(name = "users") +public class User { + @Id + @Column(name = "id") + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @Column(name = "login") + private Long login; + + @ManyToOne + @JoinColumn(name = "id_role") + private Role role; +} diff --git a/src/main/resources/db/scripts/release_0_0_1/changelog.xml b/src/main/resources/db/scripts/release_0_0_1/changelog.xml index 38031e7..9607261 100644 --- a/src/main/resources/db/scripts/release_0_0_1/changelog.xml +++ b/src/main/resources/db/scripts/release_0_0_1/changelog.xml @@ -5,5 +5,8 @@ xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd"> + + + \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/00_create_schema_servermonitorbot.sql new file mode 100644 index 0000000..e69de29 diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql index 540868e..8d5f188 100644 --- a/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql +++ b/src/main/resources/db/scripts/release_0_0_1/scripts/01_create_table_users.sql @@ -2,14 +2,16 @@ --changeset L_DelOff:create_table_users rollbackSplitStatements:true --comment: Создание таблицы пользователей -CREATE TABLE USERS +CREATE TABLE users ( - ID VARCHAR(36) PRIMARY KEY, - NAME VARCHAR(128) + id integer PRIMARY KEY, + login VARCHAR(128), + id_role integer ); -COMMENT ON TABLE USERS IS 'Пользователи'; -COMMENT ON COLUMN USERS.ID IS 'Идентификатор пользователя'; -COMMENT ON COLUMN USERS.NAME IS 'Логин пользователя'; +COMMENT ON TABLE users IS 'Пользователи'; +COMMENT ON COLUMN users.id IS 'Идентификатор пользователя'; +COMMENT ON COLUMN users.login IS 'Логин пользователя'; +COMMENT ON COLUMN users.id_role IS 'Ссылка на роль пользователя'; ---rollback DROP TABLE RELEASES; \ No newline at end of file +--rollback DROP TABLE users; \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql new file mode 100644 index 0000000..d09119d --- /dev/null +++ b/src/main/resources/db/scripts/release_0_0_1/scripts/02_create_table_roles.sql @@ -0,0 +1,15 @@ +--liquibase formatted sql + +--changeset L_DelOff:create_table_roles rollbackSplitStatements:true +--comment: Создание таблицы ролей +CREATE TABLE roles +( + id integer PRIMARY KEY, + role VARCHAR(128) +); + +COMMENT ON TABLE roles IS 'Пользователи'; +COMMENT ON COLUMN roles.id IS 'Идентификатор пользователя'; +COMMENT ON COLUMN roles.role IS 'Логин пользователя'; + +--rollback DROP TABLE roles; \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql new file mode 100644 index 0000000..6225766 --- /dev/null +++ b/src/main/resources/db/scripts/release_0_0_1/scripts/03_add_FK_users_to_roles.sql @@ -0,0 +1,2 @@ +ALTER TABLE users +ADD COLUMN role_id INT NOT NULL REFERENCES roles(id); \ No newline at end of file diff --git a/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql b/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql new file mode 100644 index 0000000..65c0cbf --- /dev/null +++ b/src/main/resources/db/scripts/release_0_0_1/scripts/04_add_roles.sql @@ -0,0 +1,2 @@ +INSERT INTO roles (id, role) VALUES (1, 'ADMIN'); +INSERT INTO roles (id, role) VALUES (2, 'USER'); \ No newline at end of file