mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 00:24:35 +00:00
- Added method addUniqueKey, addCommentToColumn, addCommentToTable and grantSequence to MigrationLib
- Ported script 008_message.php to MigrationLib - Added fields sent and sentinfo to tbl_msg_recipient - Changes to 012_bewerbungsfrist.php to be phpcs compliant
This commit is contained in:
@@ -1,99 +1,294 @@
|
||||
<?php
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
if (! defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
class Migration_Message extends CI_Migration
|
||||
require_once APPPATH . "/libraries/MigrationLib.php";
|
||||
|
||||
class Migration_Message extends MigrationLib
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function up()
|
||||
{
|
||||
$this->startUP();
|
||||
|
||||
// Create table public.tbl_msg_message
|
||||
$fields = array(
|
||||
"message_id" => array(
|
||||
"type" => "serial"
|
||||
),
|
||||
"person_id" => array(
|
||||
"type" => "bigint"
|
||||
),
|
||||
"subject" => array(
|
||||
"type" => "varchar(256)",
|
||||
"null" => false
|
||||
),
|
||||
"body" => array(
|
||||
"type" => "text",
|
||||
"null" => false
|
||||
),
|
||||
"priority" => array(
|
||||
"type" => "smallint DEFAULT 0",
|
||||
"null" => false
|
||||
),
|
||||
"relationmessage_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => true
|
||||
),
|
||||
"oe_kurzbz" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => true
|
||||
),
|
||||
"insertamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => false
|
||||
),
|
||||
"insertvon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => true
|
||||
)
|
||||
);
|
||||
$this->createTable("public", "tbl_msg_message", $fields);
|
||||
$this->addPrimaryKey(
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"pk_tbl_msg_message",
|
||||
array("message_id")
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"fk_tbl_msg_message_person_id",
|
||||
"person_id",
|
||||
"public",
|
||||
"tbl_person",
|
||||
"person_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"fk_tbl_msg_message_relationmessage_id",
|
||||
"relationmessage_id",
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"message_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"fk_tbl_msg_message_oe_kurzbz",
|
||||
"oe_kurzbz",
|
||||
"public",
|
||||
"tbl_organisationseinheit",
|
||||
"oe_kurzbz",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addCommentToColumn("public", "tbl_msg_message", "person_id", "Sender");
|
||||
$this->addCommentToColumn("public", "tbl_msg_message", "priority", "Codex in config/message.php");
|
||||
$this->grantTable("SELECT", "public", "tbl_msg_message", "web");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_message", "admin");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_message", "vilesci");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_message_message_id_seq", "web");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_message_message_id_seq", "admin");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_message_message_id_seq", "vilesci");
|
||||
|
||||
// Create table public.tbl_msg_recipient
|
||||
$fields = array(
|
||||
"person_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => false
|
||||
),
|
||||
"message_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => false
|
||||
),
|
||||
"token" => array(
|
||||
"type" => "varchar(128)",
|
||||
"null" => true
|
||||
),
|
||||
"sent" => array(
|
||||
"type" => "timestamp DEFAULT NULL",
|
||||
"null" => true
|
||||
),
|
||||
"sentinfo" => array(
|
||||
"type" => "text DEFAULT NULL",
|
||||
"null" => true
|
||||
),
|
||||
"insertamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => false
|
||||
),
|
||||
"insertvon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => true
|
||||
)
|
||||
);
|
||||
$this->createTable("public", "tbl_msg_recipient", $fields);
|
||||
$this->addPrimaryKey(
|
||||
"public",
|
||||
"tbl_msg_recipient",
|
||||
"pk_tbl_msg_recipient",
|
||||
array("person_id", "message_id")
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_recipient",
|
||||
"fk_tbl_msg_recipient_person_id",
|
||||
"person_id",
|
||||
"public",
|
||||
"tbl_person",
|
||||
"person_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_recipient",
|
||||
"fk_tbl_msg_recipient_message_id",
|
||||
"message_id",
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"message_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addUniqueKey(
|
||||
"public",
|
||||
"tbl_msg_recipient",
|
||||
"uk_tbl_msg_recipient_token",
|
||||
array("token")
|
||||
);
|
||||
$this->addCommentToColumn("public", "tbl_msg_recipient", "person_id", "Receiver");
|
||||
$this->addCommentToColumn("public", "tbl_msg_recipient", "sent", "If NULL not sent, otherwise the shipping date");
|
||||
$this->grantTable("SELECT", "public", "tbl_msg_recipient", "web");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_recipient", "admin");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_recipient", "vilesci");
|
||||
|
||||
// Create table public.tbl_msg_status
|
||||
$fields = array(
|
||||
"message_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => false
|
||||
),
|
||||
"person_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => false
|
||||
),
|
||||
"status" => array(
|
||||
"type" => "smallint",
|
||||
"null" => false
|
||||
),
|
||||
"statusinfo" => array(
|
||||
"type" => "text",
|
||||
"null" => true
|
||||
),
|
||||
"insertamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => false
|
||||
),
|
||||
"insertvon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => true
|
||||
),
|
||||
"updateamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => false
|
||||
),
|
||||
"updatevon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => true
|
||||
)
|
||||
);
|
||||
$this->createTable("public", "tbl_msg_status", $fields);
|
||||
$this->addPrimaryKey(
|
||||
"public",
|
||||
"tbl_msg_status",
|
||||
"pk_tbl_msg_status",
|
||||
array("message_id", "person_id", "status")
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_status",
|
||||
"fk_tbl_msg_status_person_id",
|
||||
"person_id",
|
||||
"public",
|
||||
"tbl_person",
|
||||
"person_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_status",
|
||||
"fk_tbl_msg_status_message_id",
|
||||
"message_id",
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"message_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->addCommentToColumn("public", "tbl_msg_status", "person_id", "Receiver");
|
||||
$this->grantTable("SELECT", "public", "tbl_msg_status", "web");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_status", "admin");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_status", "vilesci");
|
||||
|
||||
// Create table public.tbl_msg_attachment
|
||||
$fields = array(
|
||||
"attachment_id" => array(
|
||||
"type" => "serial"
|
||||
),
|
||||
"message_id" => array(
|
||||
"type" => "bigint",
|
||||
"null" => false
|
||||
),
|
||||
"name" => array(
|
||||
"type" => "text",
|
||||
"null" => true
|
||||
),
|
||||
"filename" => array(
|
||||
"type" => "text",
|
||||
"null" => true
|
||||
)
|
||||
);
|
||||
$this->createTable("public", "tbl_msg_attachment", $fields);
|
||||
$this->addPrimaryKey(
|
||||
"public",
|
||||
"tbl_msg_attachment",
|
||||
"pk_tbl_msg_attachment",
|
||||
array("attachment_id")
|
||||
);
|
||||
$this->addForeingKey(
|
||||
"public",
|
||||
"tbl_msg_attachment",
|
||||
"fk_tbl_msg_attachment_message_id",
|
||||
"message_id",
|
||||
"public",
|
||||
"tbl_msg_message",
|
||||
"message_id",
|
||||
"ON UPDATE CASCADE ON DELETE RESTRICT"
|
||||
);
|
||||
$this->grantTable("SELECT", "public", "tbl_msg_attachment", "web");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_attachment", "admin");
|
||||
$this->grantTable(array("SELECT", "INSERT", "DELETE", "UPDATE"), "public", "tbl_msg_attachment", "vilesci");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_attachment_attachment_id_seq", "web");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_attachment_attachment_id_seq", "admin");
|
||||
$this->grantSequence(array("SELECT", "UPDATE"), "public", "tbl_msg_attachment_attachment_id_seq", "vilesci");
|
||||
|
||||
$this->endUP();
|
||||
}
|
||||
|
||||
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;
|
||||
public function down()
|
||||
{
|
||||
$this->startDown();
|
||||
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->dropTable("public", "tbl_msg_recipient");
|
||||
$this->dropTable("public", "tbl_msg_status");
|
||||
$this->dropTable("public", "tbl_msg_attachment");
|
||||
$this->dropTable("public", "tbl_msg_message");
|
||||
|
||||
$this->endDown();
|
||||
}
|
||||
}
|
||||
@@ -35,30 +35,30 @@ class Migration_Bewerbungsfrist extends MigrationLib
|
||||
),
|
||||
"nachfrist" => array(
|
||||
"type" => "boolean DEFAULT FALSE",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
),
|
||||
"nachfristende" => array(
|
||||
"type" => "date",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
),
|
||||
"anmerkung" => array(
|
||||
"type" => "text"
|
||||
),
|
||||
"insertamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
),
|
||||
"insertvon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
),
|
||||
"updateamum" => array(
|
||||
"type" => "timestamp DEFAULT NOW()",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
),
|
||||
"updatevon" => array(
|
||||
"type" => "varchar(32)",
|
||||
"null" => TRUE
|
||||
"null" => true
|
||||
)
|
||||
);
|
||||
$this->createTable("lehre", "tbl_bewerbungsfrist", $fields);
|
||||
|
||||
Reference in New Issue
Block a user