Files
matrix/cygnus-cloud-service/target/classes/db/identity/001_identity_login_schema.sql

218 lines
7.6 KiB
PL/PgSQL

BEGIN;
CREATE SCHEMA IF NOT EXISTS identity;
CREATE TABLE IF NOT EXISTS identity.company
(LIKE public.company INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.company_branch
(LIKE public.company_branch INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.user_group
(LIKE public.user_group INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.app_user
(LIKE public.app_user INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.pages
(LIKE public.pages INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.permission
(LIKE public.permission INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.denied_pages
(LIKE public.denied_pages INCLUDING ALL);
CREATE TABLE IF NOT EXISTS identity.user_loginhistory
(LIKE public.user_loginhistory INCLUDING ALL);
CREATE SEQUENCE IF NOT EXISTS identity.app_user_user_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.company_company_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.company_branch_branch_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.user_group_group_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.pages_page_id_seq
AS smallint MAXVALUE 32767;
CREATE SEQUENCE IF NOT EXISTS identity.permission_permission_id_seq
AS integer;
CREATE SEQUENCE IF NOT EXISTS identity.denied_pages_uid_seq
AS integer;
CREATE SEQUENCE IF NOT EXISTS identity.user_loginhistory_uid_seq
AS bigint;
ALTER TABLE identity.app_user
ALTER COLUMN user_id SET DEFAULT nextval('identity.app_user_user_id_seq');
ALTER TABLE identity.company
ALTER COLUMN company_id SET DEFAULT nextval('identity.company_company_id_seq');
ALTER TABLE identity.company_branch
ALTER COLUMN branch_id SET DEFAULT nextval('identity.company_branch_branch_id_seq');
ALTER TABLE identity.user_group
ALTER COLUMN group_id SET DEFAULT nextval('identity.user_group_group_id_seq');
ALTER TABLE identity.pages
ALTER COLUMN page_id SET DEFAULT nextval('identity.pages_page_id_seq');
ALTER TABLE identity.permission
ALTER COLUMN permission_id SET DEFAULT nextval('identity.permission_permission_id_seq');
ALTER TABLE identity.denied_pages
ALTER COLUMN uid SET DEFAULT nextval('identity.denied_pages_uid_seq');
ALTER TABLE identity.user_loginhistory
ALTER COLUMN uid SET DEFAULT nextval('identity.user_loginhistory_uid_seq');
ALTER TABLE identity.user_loginhistory
ALTER COLUMN ipaddr TYPE character varying(45);
INSERT INTO identity.company
SELECT * FROM public.company
ON CONFLICT (company_id) DO UPDATE SET
companyname = EXCLUDED.companyname,
companycode = EXCLUDED.companycode,
servicetaxno = EXCLUDED.servicetaxno,
panno = EXCLUDED.panno,
createdon = EXCLUDED.createdon,
isactive = EXCLUDED.isactive,
cinno = EXCLUDED.cinno;
INSERT INTO identity.company_branch
SELECT * FROM public.company_branch
ON CONFLICT (branch_id) DO UPDATE SET
company_id = EXCLUDED.company_id,
branchname = EXCLUDED.branchname,
branchcode = EXCLUDED.branchcode,
address1 = EXCLUDED.address1,
address2 = EXCLUDED.address2,
address3 = EXCLUDED.address3,
city = EXCLUDED.city,
pincode = EXCLUDED.pincode,
landlineno = EXCLUDED.landlineno,
faxno = EXCLUDED.faxno,
emailid = EXCLUDED.emailid,
contactperson1 = EXCLUDED.contactperson1,
contactno1 = EXCLUDED.contactno1,
emailid1 = EXCLUDED.emailid1,
contactperson2 = EXCLUDED.contactperson2,
contactno2 = EXCLUDED.contactno2,
emailid2 = EXCLUDED.emailid2,
isactive = EXCLUDED.isactive,
createdon = EXCLUDED.createdon,
gstin = EXCLUDED.gstin,
cgst = EXCLUDED.cgst,
sgst = EXCLUDED.sgst,
igst = EXCLUDED.igst;
INSERT INTO identity.user_group
SELECT * FROM public.user_group
ON CONFLICT (group_id) DO UPDATE SET
name = EXCLUDED.name,
department_id = EXCLUDED.department_id,
createdon = EXCLUDED.createdon,
createdby = EXCLUDED.createdby,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
isactive = EXCLUDED.isactive;
INSERT INTO identity.app_user
SELECT * FROM public.app_user
ON CONFLICT (user_id) DO UPDATE SET
loginid = EXCLUDED.loginid,
displayname = EXCLUDED.displayname,
loginpassword = EXCLUDED.loginpassword,
group_id = EXCLUDED.group_id,
createdon = EXCLUDED.createdon,
createdby = EXCLUDED.createdby,
activatedon = EXCLUDED.activatedon,
activatedby = EXCLUDED.activatedby,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
branch_id = EXCLUDED.branch_id,
company_id = EXCLUDED.company_id,
isactive = EXCLUDED.isactive,
team_id = EXCLUDED.team_id,
emailid = EXCLUDED.emailid,
entry_time = EXCLUDED.entry_time;
INSERT INTO identity.pages
SELECT * FROM public.pages
ON CONFLICT (page_id) DO UPDATE SET
menulabel = EXCLUDED.menulabel,
targeturl = EXCLUDED.targeturl,
parentpage = EXCLUDED.parentpage,
targetwindow = EXCLUDED.targetwindow,
pageorder = EXCLUDED.pageorder,
isvisible = EXCLUDED.isvisible;
INSERT INTO identity.permission
SELECT * FROM public.permission
ON CONFLICT (permission_id) DO UPDATE SET
page_id = EXCLUDED.page_id,
group_id = EXCLUDED.group_id,
lasteditedon = EXCLUDED.lasteditedon,
lasteditedby = EXCLUDED.lasteditedby,
permission = EXCLUDED.permission,
requestval = EXCLUDED.requestval;
INSERT INTO identity.denied_pages
SELECT * FROM public.denied_pages
ON CONFLICT (uid) DO UPDATE SET
page_id = EXCLUDED.page_id,
user_id = EXCLUDED.user_id,
isdenied = EXCLUDED.isdenied;
INSERT INTO identity.user_loginhistory
SELECT * FROM public.user_loginhistory
ON CONFLICT (uid) DO UPDATE SET
loginid = EXCLUDED.loginid,
logintime = EXCLUDED.logintime,
logouttime = EXCLUDED.logouttime,
ipaddr = EXCLUDED.ipaddr,
user_id = EXCLUDED.user_id;
CREATE INDEX IF NOT EXISTS ix_identity_app_user_loginid_ci
ON identity.app_user (upper(loginid));
CREATE INDEX IF NOT EXISTS ix_identity_permission_group_page
ON identity.permission (group_id, page_id)
WHERE permission <> '000';
CREATE INDEX IF NOT EXISTS ix_identity_pages_menu
ON identity.pages (parentpage, pageorder DESC)
WHERE isvisible = 1;
CREATE INDEX IF NOT EXISTS ix_identity_denied_pages_user_page
ON identity.denied_pages (user_id, page_id)
WHERE isdenied = 1;
CREATE INDEX IF NOT EXISTS ix_identity_login_history_user_time
ON identity.user_loginhistory (user_id, logintime DESC);
SELECT setval(
'identity.app_user_user_id_seq',
GREATEST(COALESCE((SELECT max(user_id) FROM identity.app_user), 1), 1),
EXISTS (SELECT 1 FROM identity.app_user));
SELECT setval(
'identity.company_company_id_seq',
GREATEST(COALESCE((SELECT max(company_id) FROM identity.company), 1), 1),
EXISTS (SELECT 1 FROM identity.company));
SELECT setval(
'identity.company_branch_branch_id_seq',
GREATEST(COALESCE((SELECT max(branch_id) FROM identity.company_branch), 1), 1),
EXISTS (SELECT 1 FROM identity.company_branch));
SELECT setval(
'identity.user_group_group_id_seq',
GREATEST(COALESCE((SELECT max(group_id) FROM identity.user_group), 1), 1),
EXISTS (SELECT 1 FROM identity.user_group));
SELECT setval(
'identity.pages_page_id_seq',
GREATEST(COALESCE((SELECT max(page_id) FROM identity.pages), 1), 1),
EXISTS (SELECT 1 FROM identity.pages));
SELECT setval(
'identity.permission_permission_id_seq',
GREATEST(COALESCE((SELECT max(permission_id) FROM identity.permission), 1), 1),
EXISTS (SELECT 1 FROM identity.permission));
SELECT setval(
'identity.denied_pages_uid_seq',
GREATEST(COALESCE((SELECT max(uid) FROM identity.denied_pages), 1), 1),
EXISTS (SELECT 1 FROM identity.denied_pages));
SELECT setval(
'identity.user_loginhistory_uid_seq',
GREATEST(COALESCE((SELECT max(uid) FROM identity.user_loginhistory), 1), 1),
EXISTS (SELECT 1 FROM identity.user_loginhistory));
COMMIT;