This commit is contained in:
Paminger
2016-06-09 10:00:23 +02:00
parent dabcf8188b
commit 850777476e
11 changed files with 179 additions and 77 deletions
+54 -24
View File
@@ -8,14 +8,25 @@ class Migration_Message extends CI_Migration {
{
if (! $this->db->table_exists('public.tbl_msg_message'))
{
$this->db->insert('system.tbl_berechtigung', array(
'berechtigung_kurzbz' => 'basis/message',
'beschreibung' => 'Nachrichtensystem von FH-Complete'));
$this->db->insert('system.tbl_rolleberechtigung', array(
'berechtigung_kurzbz' => 'basis/message',
'rolle_kurzbz' => 'admin',
'art' => 'suid'));
$query= "
CREATE TABLE public.tbl_msg_message (
message_id serial,
thread_id bigint NOT NULL,
person_id bigint NOT NULL,
subject varchar(256) NOT NULL,
body text NOT NULL,
priority smallint NOT NULL DEFAULT 0,
person_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
relationmessage_id bigint,
oe_kurzbz varchar(32),
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
PRIMARY KEY (message_id)
);
COMMENT ON COLUMN public.tbl_msg_message.person_id IS 'Sender';
@@ -27,37 +38,45 @@ class Migration_Message extends CI_Migration {
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO vilesci;
CREATE TABLE public.tbl_msg_participant (
CREATE TABLE public.tbl_msg_recipient (
person_id bigint NOT NULL,
thread_id bigint NOT NULL,
cdate timestamp NOT NULL DEFAULT now(),
PRIMARY KEY (person_id,thread_id)
message_id bigint NOT NULL,
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
PRIMARY KEY (person_id,message_id)
);
GRANT SELECT ON TABLE public.tbl_msg_participant TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_participant TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_participant TO vilesci;
GRANT SELECT ON TABLE public.tbl_msg_recipient TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_recipient TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_recipient TO vilesci;
CREATE TABLE public.tbl_msg_status (
message_id bigint NOT NULL,
person_id bigint NOT NULL,
status smallint NOT NULL,
statusinfo text,
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
updateamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
updatevon varchar(32),
PRIMARY KEY (message_id,person_id)
);
GRANT SELECT ON TABLE public.tbl_msg_status TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_status TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_status TO vilesci;
CREATE TABLE public.tbl_msg_thread (
thread_id serial,
subject text,
PRIMARY KEY (thread_id)
CREATE TABLE public.tbl_msg_attachment (
attachment_id serial,
message_id bigint NOT NULL,
name text,
filename text,
PRIMARY KEY (message_id)
);
GRANT SELECT ON TABLE public.tbl_msg_thread TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_thread TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_thread TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_thread_thread_id_seq TO vilesci;
GRANT SELECT ON TABLE public.tbl_msg_attachment TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_attachment TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_attachment TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO web;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO admin;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_attachment_attachment_id_seq TO vilesci;
";
if (!$this->db->simple_query($query))
{
@@ -68,10 +87,21 @@ class Migration_Message extends CI_Migration {
public function down()
{
$this->dbforge->drop_table('public.tbl_msg_message');
$this->dbforge->drop_table('public.tbl_msg_participant');
$this->dbforge->drop_table('public.tbl_msg_status');
$this->dbforge->drop_table('public.tbl_msg_thread');
try
{
$this->db->delete('system.tbl_rolleberechtigung', array('berechtigung_kurzbz' => 'basis/message'));
$this->db->delete('system.tbl_berechtigung', array('berechtigung_kurzbz' => 'basis/message'));
$this->dbforge->drop_table('public.tbl_msg_recipient');
$this->dbforge->drop_table('public.tbl_msg_status');
$this->dbforge->drop_table('public.tbl_msg_attachment');
$this->dbforge->drop_table('public.tbl_msg_message');
echo "Table public.tbl_msg_message, public.tbl_msg_status, public.tbl_msg_attachment and public.tbl_msg_recipient dropped!";
}
catch(Exception $e)
{
echo 'Exception abgefangen: ', $e->getMessage(), "\n";
echo $this->db->error();
}
}
}