mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 00:24:35 +00:00
MigrationLib to help with the migration procedure
This commit is contained in:
@@ -2,103 +2,64 @@
|
||||
|
||||
if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Migration_Reihungstest extends CI_Migration {
|
||||
require_once APPPATH . '/libraries/MigrationLib.php';
|
||||
|
||||
class Migration_Reihungstest extends MigrationLib
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
$this->startUP();
|
||||
|
||||
// Add stufe to public.tbl_reihungstest
|
||||
if (! @$this->db->simple_query('SELECT stufe FROM public.tbl_reihungstest'))
|
||||
{
|
||||
$query = "ALTER TABLE public.tbl_reihungstest ADD COLUMN stufe smallint;";
|
||||
if ($this->db->simple_query($query))
|
||||
echo 'Column public.tbl_reihungstest.stufe added!';
|
||||
else
|
||||
echo "Error adding public.tbl_reihungstest.stufe!";
|
||||
}
|
||||
$this->addColumn('public', 'tbl_reihungstest', 'stufe', 'smallint');
|
||||
|
||||
// Add anmeldefrist to public.tbl_reihungstest
|
||||
if (! @$this->db->simple_query('SELECT anmeldefrist FROM public.tbl_reihungstest'))
|
||||
{
|
||||
$query = "ALTER TABLE public.tbl_reihungstest ADD COLUMN anmeldefrist date;";
|
||||
if ($this->db->simple_query($query))
|
||||
echo 'Column public.tbl_reihungstest.anmeldefrist added!';
|
||||
else
|
||||
echo "Error adding public.tbl_reihungstest.anmeldefrist!";
|
||||
}
|
||||
$this->addColumn('public', 'tbl_reihungstest', 'anmeldefrist', 'date');
|
||||
|
||||
// Add rt_stufe to public.tbl_prestudentstatus
|
||||
if (! @$this->db->simple_query('SELECT rt_stufe FROM public.tbl_prestudentstatus'))
|
||||
{
|
||||
$query = "ALTER TABLE public.tbl_prestudentstatus ADD COLUMN rt_stufe smallint DEFAULT 1;";
|
||||
if ($this->db->simple_query($query))
|
||||
echo 'Column public.tbl_prestudentstatus.rt_stufe added!';
|
||||
else
|
||||
echo "Error adding public.tbl_prestudentstatus.rt_stufe!";
|
||||
}
|
||||
$this->addColumn('public', 'tbl_prestudentstatus', 'rt_stufe', 'smallint DEFAULT 1');
|
||||
|
||||
// Create table public.tbl_rt_studienplan
|
||||
if (! $this->db->table_exists('public.tbl_rt_studienplan'))
|
||||
{
|
||||
$query= "CREATE TABLE public.tbl_rt_studienplan (
|
||||
reihungstest_id integer,
|
||||
stundenplan_id integer,
|
||||
CONSTRAINT pk_tbl_rt_studienplan PRIMARY KEY (reihungstest_id, stundenplan_id),
|
||||
CONSTRAINT fk_rt_studienplan_reihungstest_id FOREIGN KEY (reihungstest_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_studienplan_stundenplan_id FOREIGN KEY (stundenplan_id) REFERENCES lehre.tbl_stundenplan(stundenplan_id) ON UPDATE CASCADE ON DELETE RESTRICT
|
||||
);
|
||||
GRANT SELECT ON TABLE public.tbl_rt_studienplan TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_studienplan TO admin;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_studienplan TO vilesci;";
|
||||
|
||||
if (!$this->db->simple_query($query))
|
||||
{
|
||||
echo "Error creating table public.tbl_rt_studienplan!";
|
||||
}
|
||||
}
|
||||
$this->createTable('public', 'tbl_rt_studienplan',
|
||||
'reihungstest_id integer,
|
||||
stundenplan_id integer,
|
||||
CONSTRAINT pk_tbl_rt_studienplan PRIMARY KEY (reihungstest_id, stundenplan_id),
|
||||
CONSTRAINT fk_rt_studienplan_reihungstest_id FOREIGN KEY (reihungstest_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_studienplan_stundenplan_id FOREIGN KEY (stundenplan_id) REFERENCES lehre.tbl_stundenplan(stundenplan_id) ON UPDATE CASCADE ON DELETE RESTRICT'
|
||||
);
|
||||
$this->grantTable('SELECT', 'public', 'tbl_rt_studienplan', 'web');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_studienplan', 'admin');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_studienplan', 'vilesci');
|
||||
|
||||
// Create table public.tbl_rt_person
|
||||
if (! $this->db->table_exists('public.tbl_rt_person'))
|
||||
{
|
||||
$query= "CREATE TABLE public.tbl_rt_person (
|
||||
person_id integer,
|
||||
rt_id integer,
|
||||
anmeldedatum date,
|
||||
teilgenommen boolean DEFAULT FALSE,
|
||||
ort_kurzbz varchar(16) NOT NULL,
|
||||
CONSTRAINT pk_tbl_rt_person PRIMARY KEY (person_id, rt_id),
|
||||
CONSTRAINT fk_rt_person_ort_kurzbz FOREIGN KEY (ort_kurzbz) REFERENCES public.tbl_ort(ort_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_person_reihungstest_id FOREIGN KEY (rt_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT
|
||||
);
|
||||
GRANT SELECT ON TABLE public.tbl_rt_person TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_person TO admin;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_person TO vilesci;";
|
||||
|
||||
if (!$this->db->simple_query($query))
|
||||
{
|
||||
echo "Error creating table public.tbl_rt_person!";
|
||||
}
|
||||
}
|
||||
$this->createTable('public', 'tbl_rt_person',
|
||||
'person_id integer,
|
||||
rt_id integer,
|
||||
anmeldedatum date,
|
||||
teilgenommen boolean DEFAULT FALSE,
|
||||
ort_kurzbz varchar(16) NOT NULL,
|
||||
CONSTRAINT pk_tbl_rt_person PRIMARY KEY (person_id, rt_id),
|
||||
CONSTRAINT fk_rt_person_ort_kurzbz FOREIGN KEY (ort_kurzbz) REFERENCES public.tbl_ort(ort_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_person_reihungstest_id FOREIGN KEY (rt_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT'
|
||||
);
|
||||
$this->grantTable('SELECT', 'public', 'tbl_rt_person', 'web');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_person', 'admin');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_person', 'vilesci');
|
||||
|
||||
// Create table public.tbl_rt_ort
|
||||
if (! $this->db->table_exists('public.tbl_rt_ort'))
|
||||
{
|
||||
$query= "CREATE TABLE public.tbl_rt_ort (
|
||||
rt_id integer,
|
||||
ort_kurzbz varchar(16),
|
||||
uid varchar(32),
|
||||
CONSTRAINT pk_tbl_rt_ort PRIMARY KEY (rt_id, ort_kurzbz),
|
||||
CONSTRAINT fk_rt_ort_reihungstest_id FOREIGN KEY (rt_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_ort_ort_kurzbz FOREIGN KEY (ort_kurzbz) REFERENCES public.tbl_ort(ort_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT
|
||||
);
|
||||
GRANT SELECT ON TABLE public.tbl_rt_ort TO web;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_ort TO admin;
|
||||
GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE public.tbl_rt_ort TO vilesci;";
|
||||
|
||||
if (!$this->db->simple_query($query))
|
||||
{
|
||||
echo "Error creating table public.tbl_rt_ort!";
|
||||
}
|
||||
}
|
||||
$this->createTable('public', 'tbl_rt_ort',
|
||||
'rt_id integer,
|
||||
ort_kurzbz varchar(16),
|
||||
uid varchar(32),
|
||||
CONSTRAINT pk_tbl_rt_ort PRIMARY KEY (rt_id, ort_kurzbz),
|
||||
CONSTRAINT fk_rt_ort_reihungstest_id FOREIGN KEY (rt_id) REFERENCES public.tbl_reihungstest(reihungstest_id) ON UPDATE CASCADE ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_rt_ort_ort_kurzbz FOREIGN KEY (ort_kurzbz) REFERENCES public.tbl_ort(ort_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT'
|
||||
);
|
||||
$this->grantTable('SELECT', 'public', 'tbl_rt_ort', 'web');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_ort', 'admin');
|
||||
$this->grantTable(array('SELECT', 'INSERT', 'DELETE', 'UPDATE'), 'public', 'tbl_rt_ort', 'vilesci');
|
||||
|
||||
$this->endUP();
|
||||
}
|
||||
|
||||
public function down()
|
||||
|
||||
Reference in New Issue
Block a user