Files
FHC-Core/application/migrations/008_message.php
T
Paminger b4fdd11686 BugFix
2016-06-29 08:00:29 +02:00

100 lines
4.1 KiB
PHP

<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Migration_Message extends CI_Migration
{
public function up()
{
if (! $this->db->table_exists('public.tbl_msg_message'))
{
$query= "
CREATE TABLE public.tbl_msg_message (
message_id serial,
person_id bigint NOT NULL references public.tbl_person(person_id),
subject varchar(256) NOT NULL,
body text NOT NULL,
priority smallint NOT NULL DEFAULT 0,
relationmessage_id bigint references public.tbl_msg_message(message_id),
oe_kurzbz varchar(32) references public.tbl_organisationseinheit(oe_kurzbz),
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';
COMMENT ON COLUMN public.tbl_msg_message.priority IS 'Codex in config/message.php';
GRANT SELECT ON TABLE public.tbl_msg_message TO web;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_message TO admin;
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_msg_message TO vilesci;
GRANT SELECT, UPDATE ON SEQUENCE public.tbl_msg_message_message_id_seq TO web;
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_recipient (
person_id bigint NOT NULL references public.tbl_person(person_id),
message_id bigint NOT NULL references public.tbl_msg_message(message_id),
token varchar(128) UNIQUE,
insertamum timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
insertvon varchar(32),
PRIMARY KEY (person_id,message_id)
);
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 references public.tbl_msg_message(message_id),
person_id bigint NOT NULL references public.tbl_person(person_id),
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, status)
);
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_attachment (
attachment_id serial,
message_id bigint NOT NULL references public.tbl_msg_message(message_id),
name text,
filename text,
PRIMARY KEY (attachment_id)
);
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))
{
echo "Error creating Basis DB-Schema!";
}
}
}
public function down()
{
try
{
$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();
}
}
}