From c045617e98d1db1acc9dbf5411cfe82a22b08672 Mon Sep 17 00:00:00 2001 From: Quitta Date: Fri, 5 Jul 2013 22:28:31 +0200 Subject: [PATCH] Added database setup into install --HG-- branch : quitta-gsoc-2013 --- .../server/ryzom_ams/www/html/sql/install.php | 169 +++++++++++++++++- .../ryzom_ams/www/html/sql/ticketsql.sql | 26 ++- .../www/html/sql/ticketsystemmodel.mwb | Bin 12657 -> 12386 bytes 3 files changed, 178 insertions(+), 17 deletions(-) diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php index 3e36ca6c8..0f64a4924 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/install.php @@ -45,7 +45,11 @@ `query` VARCHAR( 512 ) NOT NULL ); + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_category` + -- ----------------------------------------------------- DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_category` ; + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_category` ( `TCategoryId` INT NOT NULL AUTO_INCREMENT , `Name` VARCHAR(45) NOT NULL , @@ -53,8 +57,25 @@ UNIQUE INDEX `Name_UNIQUE` (`Name` ASC) ) ENGINE = InnoDB; + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_user` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_user` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_user` ( + `UId` INT(10) NOT NULL AUTO_INCREMENT , + `Permission` INT(3) NOT NULL DEFAULT 1 , + `Extern_Id` INT(10) NOT NULL , + PRIMARY KEY (`UId`) ) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket` + -- ----------------------------------------------------- DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket` ; - + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket` ( `TId` INT NOT NULL AUTO_INCREMENT , `Timestamp` TIMESTAMP NOT NULL , @@ -73,10 +94,154 @@ ON UPDATE NO ACTION, CONSTRAINT `fk_ticket_ams_user` FOREIGN KEY (`Author` ) - REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ams_user` (`UId` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket_user` (`UId` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`assigned` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`assigned` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`assigned` ( + `Ticket` INT NOT NULL , + `User` INT NOT NULL , + INDEX `fk_assigned_ticket_idx` (`Ticket` ASC) , + PRIMARY KEY (`Ticket`, `User`) , + INDEX `fk_assigned_ams_user_idx` (`User` ASC) , + CONSTRAINT `fk_assigned_ticket` + FOREIGN KEY (`Ticket` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_assigned_ams_user` + FOREIGN KEY (`User` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket_user` (`UId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`tag` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`tag` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`tag` ( + `TagId` INT NOT NULL AUTO_INCREMENT , + `Value` VARCHAR(60) NOT NULL , + PRIMARY KEY (`TagId`) , + UNIQUE INDEX `Value_UNIQUE` (`Value` ASC) ) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`tagged` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`tagged` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`tagged` ( + `Ticket` INT NOT NULL , + `Tag` INT NOT NULL , + PRIMARY KEY (`Ticket`, `Tag`) , + INDEX `fk_tagged_tag_idx` (`Tag` ASC) , + CONSTRAINT `fk_tagged_ticket` + FOREIGN KEY (`Ticket` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_tagged_tag` + FOREIGN KEY (`Tag` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`tag` (`TagId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_content` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_content` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_content` ( + `TContentId` INT NOT NULL AUTO_INCREMENT , + `Content` TEXT NULL , + PRIMARY KEY (`TContentId`) ) + ENGINE = InnoDB + DEFAULT CHARACTER SET = utf8; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_reply` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_reply` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_reply` ( + `TReplyId` INT NOT NULL AUTO_INCREMENT , + `Ticket` INT NOT NULL , + `Author` INT NOT NULL , + `Content` INT NOT NULL , + `Timestamp` TIMESTAMP NULL , + PRIMARY KEY (`TReplyId`) , + INDEX `fk_ticket_reply_ticket_idx` (`Ticket` ASC) , + INDEX `fk_ticket_reply_ams_user_idx` (`Author` ASC) , + INDEX `fk_ticket_reply_content_idx` (`Content` ASC) , + CONSTRAINT `fk_ticket_reply_ticket` + FOREIGN KEY (`Ticket` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_ticket_reply_ams_user` + FOREIGN KEY (`Author` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket_user` (`UId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_ticket_reply_ticket_content` + FOREIGN KEY (`Content` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket_content` (`TContentId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`ticket_group` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_group` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`ticket_group` ( + `TGroupId` INT NOT NULL AUTO_INCREMENT , + `Title` VARCHAR(80) NOT NULL , + PRIMARY KEY (`TGroupId`) , + UNIQUE INDEX `Title_UNIQUE` (`Title` ASC) ) + ENGINE = InnoDB; + + + -- ----------------------------------------------------- + -- Table `" . $cfg['db']['lib']['name'] ."`.`in_group` + -- ----------------------------------------------------- + DROP TABLE IF EXISTS `" . $cfg['db']['lib']['name'] ."`.`in_group` ; + + CREATE TABLE IF NOT EXISTS `" . $cfg['db']['lib']['name'] ."`.`in_group` ( + `Ticket_Group` INT NOT NULL , + `Ticket` INT NOT NULL , + PRIMARY KEY (`Ticket_Group`, `Ticket`) , + INDEX `fk_in_group_ticket_group_idx` (`Ticket_Group` ASC) , + INDEX `fk_in_group_ticket_idx` (`Ticket` ASC) , + CONSTRAINT `fk_in_group_ticket_group` + FOREIGN KEY (`Ticket_Group` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket_group` (`TGroupId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION, + CONSTRAINT `fk_in_group_ticket` + FOREIGN KEY (`Ticket` ) + REFERENCES `" . $cfg['db']['lib']['name'] ."`.`ticket` (`TId` ) + ON DELETE NO ACTION + ON UPDATE NO ACTION) + ENGINE = InnoDB; + "; diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql index 7e71786e7..67b5112ec 100644 --- a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql +++ b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsql.sql @@ -19,20 +19,14 @@ ENGINE = InnoDB; -- ----------------------------------------------------- --- Table `mydb`.`ams_user` +-- Table `mydb`.`ticket_user` -- ----------------------------------------------------- -DROP TABLE IF EXISTS `mydb`.`ams_user` ; +DROP TABLE IF EXISTS `mydb`.`ticket_user` ; -CREATE TABLE IF NOT EXISTS `mydb`.`ams_user` ( +CREATE TABLE IF NOT EXISTS `mydb`.`ticket_user` ( `UId` INT(10) NOT NULL AUTO_INCREMENT , - `Login` VARCHAR(64) NOT NULL , - `Password` VARCHAR(13) NULL DEFAULT NULL , - `Email` VARCHAR(255) NOT NULL , `Permission` INT(3) NOT NULL DEFAULT 1 , - `FirstName` VARCHAR(80) NOT NULL , - `LastName` VARCHAR(80) NOT NULL , - `Gender` TINYINT(1) NOT NULL DEFAULT 0 , - `Country` CHAR(2) NOT NULL DEFAULT 'AA' , + `Extern_Id` INT(10) NOT NULL, PRIMARY KEY (`UId`) ) ENGINE = InnoDB; @@ -44,7 +38,7 @@ DROP TABLE IF EXISTS `mydb`.`ticket` ; CREATE TABLE IF NOT EXISTS `mydb`.`ticket` ( `TId` INT NOT NULL AUTO_INCREMENT , - `Date` TIMESTAMP NOT NULL , + `Timestamp` TIMESTAMP NOT NULL , `Title` VARCHAR(120) NOT NULL , `Status` INT NULL DEFAULT 0 , `Queue` INT NULL DEFAULT 0 , @@ -60,7 +54,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`ticket` ( ON UPDATE NO ACTION, CONSTRAINT `fk_ticket_ams_user` FOREIGN KEY (`Author` ) - REFERENCES `mydb`.`ams_user` (`UId` ) + REFERENCES `mydb`.`ticket_user` (`UId` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; @@ -84,7 +78,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`assigned` ( ON UPDATE NO ACTION, CONSTRAINT `fk_assigned_ams_user` FOREIGN KEY (`User` ) - REFERENCES `mydb`.`ams_user` (`UId` ) + REFERENCES `mydb`.`ticket_user` (`UId` ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; @@ -135,7 +129,8 @@ CREATE TABLE IF NOT EXISTS `mydb`.`ticket_content` ( `TContentId` INT NOT NULL AUTO_INCREMENT , `Content` TEXT NULL , PRIMARY KEY (`TContentId`) ) -ENGINE = InnoDB; +ENGINE = InnoDB +DEFAULT CHARACTER SET = utf8; -- ----------------------------------------------------- @@ -148,6 +143,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`ticket_reply` ( `Ticket` INT NOT NULL , `Author` INT NOT NULL , `Content` INT NOT NULL , + `Timestamp` TIMESTAMP NULL , PRIMARY KEY (`TReplyId`) , INDEX `fk_ticket_reply_ticket_idx` (`Ticket` ASC) , INDEX `fk_ticket_reply_ams_user_idx` (`Author` ASC) , @@ -159,7 +155,7 @@ CREATE TABLE IF NOT EXISTS `mydb`.`ticket_reply` ( ON UPDATE NO ACTION, CONSTRAINT `fk_ticket_reply_ams_user` FOREIGN KEY (`Author` ) - REFERENCES `mydb`.`ams_user` (`UId` ) + REFERENCES `mydb`.`ticket_user` (`UId` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_ticket_reply_ticket_content` diff --git a/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb b/code/ryzom/tools/server/ryzom_ams/www/html/sql/ticketsystemmodel.mwb index c9fedd676dc185c2729a0605a32c74ad955d9d3a..ba70ad4b2b5cbb526948168fb985efbcdda97782 100644 GIT binary patch delta 10897 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Ĥ|uwEplv9?WM54hWOLHAQ=12Ax5d z;@f(~x)77-9hD+NoQJvM2{K1e+{hp)ul(f!{fQl;T!f@Z%5H6P?>G}ca3_J6h|Wx2 zoonD*I-;D-lZPNu$r=~W2l+R3~|f2I0pp_kl^K$o_jENSKW#J zxmfiZ>t7J>Q^WIEIdl9+K6@gtawAj%#9yQ;*t@brbN(ybq2OW#i8I)n!h~=-wwY~& zm=A%Gnvyx}Jap8y3QPZ|1;GsC7y?}u4VErk?Ia{%s3dDAp$1wDuVPJ|F;a;(LSC@Z6RCk)bswX_a-9^5UPFYBTjd(95%DN_#G;id`H9}f3;4b? zZbQL{OnkRoKj@IGcmD z3mJi6UI{u1)lJobSM9FRlL6FvrGnFce$#g`Eq~sj)^I(W{){)4PNoKEspOT*yNRKA`;|{tJJntt@+_v%Wdv&MFOe|vlyg!;sTztX4m7J zv0HuM)1VKks8~tRkLT3pE%=jT&t9++ObPVjHH4t6NeUtrF%hhrEI=A3f=N+@3jK9> ziJ7FbaB>f0%L8r7Tv#-4%Wmyhi3RfDG$Frv}~zJ+*$~ z%tLz1p<1y1ALaI;@H>6ZeCeP4yAkD7^*;e-p$`Rada){hzYP|!p{kJxJ7Xc6VSbc# zx;t{l{?!z$#YNp+=fKOB29H0<9L(A@3@?Pu->+X(6nd`;XBZ&={!8^r*0(BLquzX^ z_D93eFWh?lY58wc#{q(svzUwUtCziJ8<83q`v5Hc6+6vX=I^jF#J@pBbBh) z*%*GxnW&UN*@x{wZ1gtkY4s3!Ss9tn02P;aiA?>8d#m!Ch-n)5zNqh(bpGrlL^^d? z@b5@;>Mqg$I~_j6-)~3Dj`}PR4*F39?O<@78Jd^F(Oz&;h)@QdezYooLwcy?(Fq9X zC?KOb>S;bE9#o{ep14VKbl{v>3bJ+-4JA5?QR>u-D@ry7r)Gl@-?nyr;WEL#L{Xs! z10ADefj6)Hr#DWk25(m4cbfCEK2rxn4-#A-*SA9&!ppQx>9^t5GG-rj=pJ> z-K`iJxJ+1WFnyoEfj-_>@mitS=wmq9qFsG^QPJ$lLOZ_bOJVeuh{4a6#kAG=LiL z!ixtE8uRxnvdMfxMSYk&^k+>!NS{%&%(-D&e-))?E?tzrLj~QYhb_VI!gY5x#Ukx! z6L!D9rH}A2TVHa{&ll`PzGuJ(wtaM?Z;@O#r}apo^D*?3JLApUnD zY~60d3VjnS>i;X8O~_znv`{^y7jR@*5LjnmK N2~;dwf)Lx+{{ur9J_rB+