costapy/sql/gebox.sql
2025-09-17 14:00:02 +07:00

51 lines
1.6 KiB
SQL

-- README
-- Prefix idx_ = index
-- Prefix fk_ = foreign
-- Create an index for fast lookups
-- Defining constraints separately for better readability & maintainability
-- Prefix p_ = Procedure
-- Prefix i_ = Input(s)
-- Prefix v_ = Variable(s)
-- Prefix o_ = Output(s)
-- Main table
create table if not exists `gebox_package` (
`id` int(11) not null auto_increment primary key,
`name` varchar(36) not null,
`desc` longtext default null
) engine=InnoDB default charset=utf8mb4;
create table if not exists `gebox_package_version` (
`id` int(11) not null auto_increment primary key,
`package` int(11) not null,
`version` longtext not null,
`release` datetime default null,
key `idx_package` (`package`),
constraint `gebox_instance_fk_package`
foreign key (`package`) references `gebox_package` (`id`)
on update cascade
on delete cascade
) engine=InnoDB default charset=utf8mb4;
-- Instance table
create table if not exists `gebox_instance` (
`id` int(11) not null auto_increment primary key,
--`profile` int(11) not null,
`instance` varchar(36) not null,
`domain` longtext not null,
`product` int(11) not null,
`status` text default 'pending',
--key `idx_profile` (`profile`),
key `idx_product` (`product`),
--constraint `gebox_instance_fk_profile`
-- foreign key (`profile`) references `auth_profile` (`id`)
-- on update cascade
-- on delete cascade,
constraint `gebox_instance_fk_product`
foreign key (`product`) references `gebox_package_version` (`id`)
on update restrict
on delete restrict
) engine=InnoDB default charset=utf8mb4;