-
Notifications
You must be signed in to change notification settings - Fork 5
/
1.0.2.php
105 lines (93 loc) · 3.88 KB
/
1.0.2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php
/**
* Add tables for extensions.
* Also make settings table so that we are agnostic of folder structure.
* Also add an indexed release metadata field to the package table.
*/
class Slicerpackages_Upgrade_1_0_2 extends MIDASUpgrade
{
public function preUpgrade()
{
}
/** Mysql upgrade */
public function mysql()
{
// Create extension metadata table
$this->db->query("CREATE TABLE `slicerpackages_extension` (
`slicerpackages_extension_id` bigint(20) NOT NULL AUTO_INCREMENT,
`item_id` bigint(20) NOT NULL,
`os` VARCHAR(255) NOT NULL,
`arch` VARCHAR(255) NOT NULL,
`repository_url` VARCHAR(255) NOT NULL,
`revision` VARCHAR(255) NOT NULL,
`submissiontype` VARCHAR(255) NOT NULL,
`packagetype` VARCHAR(255) NOT NULL,
`slicer_revision` VARCHAR(255) NOT NULL,
`release` VARCHAR(255) NOT NULL,
`icon_url` TEXT NOT NULL DEFAULT '',
`productname` VARCHAR(255) NOT NULL,
`codebase` VARCHAR(255) NOT NULL,
`development_status` TEXT NOT NULL DEFAULT '',
PRIMARY KEY (`slicerpackages_extension_id`)
)");
// Create extension dependency table
$this->db->query("CREATE TABLE `slicerpackages_extensiondependency` (
`slicerpackages_extension_name` VARCHAR(255) NOT NULL,
`slicerpackages_extension_dependency` VARCHAR(255) NOT NULL
)");
// Create slicer version compatibility table
$this->db->query("CREATE TABLE `slicerpackages_extensioncompatibility` (
`slicerpackages_extension_id` bigint(20) NOT NULL,
`slicer_revision` VARCHAR(255) NOT NULL
)");
// Add release metadata field to packages table
$this->db->query("ALTER TABLE `slicerpackages_package`
ADD COLUMN `release` varchar(255) NOT NULL DEFAULT ''");
// Add index on release column to quickly grab releases
$this->db->query("ALTER TABLE `slicerpackages_package` ADD INDEX (`release`)");
$this->db->query("ALTER TABLE `slicerpackages_extension` ADD INDEX (`release`)");
}
/** Pgsql upgrade */
public function pgsql()
{
// Create extension metadata table
$this->db->query("CREATE TABLE slicerpackages_extension (
slicerpackages_extension_id serial PRIMARY KEY,
item_id bigint NOT NULL,
os character varying(256) NOT NULL,
arch character varying(256) NOT NULL,
repository_url character varying(256) NOT NULL,
revision character varying(256) NOT NULL,
submissiontype character varying(256) NOT NULL,
packagetype character varying(256) NOT NULL,
slicer_revision character varying(256) NOT NULL,
release character varying(256) NOT NULL,
icon_url TEXT NOT NULL DEFAULT '',
productname character varying(256) NOT NULL,
codebase character varying(256) NOT NULL,
development_status TEXT NOT NULL DEFAULT ''
)");
// Create extension dependency table
$this->db->query("CREATE TABLE slicerpackages_extensiondependency (
slicerpackages_extension_name character varying(256) NOT NULL,
slicerpackages_extension_dependency character varying(256) NOT NULL
)");
// Create slicer version compatibility table
$this->db->query("CREATE TABLE slicerpackages_extensioncompatibility (
slicerpackages_extension_id bigint NOT NULL,
slicer_revision character varying(256) NOT NULL
)");
// Add release metadata field to packages table
$this->db->query("ALTER TABLE slicerpackages_package
ADD COLUMN release character varying(256) NOT NULL DEFAULT ''");
// Add index on release column to quickly grab releases
$this->db->query("CREATE INDEX slicerpackages_package_idx_release
ON slicerpackages_package (release)");
$this->db->query("CREATE INDEX slicerpackages_extension_idx_release
ON slicerpackages_extension (release)");
}
public function postUpgrade()
{
}
}
?>