Skip to content

Commit c09434b

Browse files
committed
Add migration
1 parent 8e05c17 commit c09434b

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

dbschema/migrations/00030.edgeql

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
CREATE MIGRATION m1f6w2tfwomhiwhtzwnpraqfo24x3rnfcpnntt7nxe5f5l7utyjzpa
2+
ONTO m1t7atw76jdjhcnrngoj5euzbz7qxve7dokvbhh4x5333yxm5klkwa
3+
{
4+
CREATE MODULE Budget IF NOT EXISTS;
5+
CREATE TYPE Budget::Record EXTENDING Project::Child {
6+
CREATE REQUIRED LINK organization: default::Organization {
7+
ON TARGET DELETE DELETE SOURCE;
8+
SET readonly := true;
9+
};
10+
CREATE REQUIRED PROPERTY fiscalYear: std::int16 {
11+
SET readonly := true;
12+
};
13+
CREATE PROPERTY amount: std::float32;
14+
};
15+
CREATE SCALAR TYPE Budget::Status EXTENDING enum<Pending, Current, Superceded, Rejected>;
16+
CREATE TYPE default::Budget EXTENDING Project::Child {
17+
CREATE LINK universalTemplate: default::File;
18+
CREATE REQUIRED PROPERTY status: Budget::Status {
19+
SET default := (Budget::Status.Pending);
20+
};
21+
};
22+
ALTER TYPE Budget::Record {
23+
CREATE REQUIRED LINK budget: default::Budget {
24+
ON TARGET DELETE DELETE SOURCE;
25+
SET readonly := true;
26+
};
27+
CREATE CONSTRAINT std::exclusive ON ((.budget, .fiscalYear, .organization));
28+
};
29+
ALTER TYPE default::Budget {
30+
CREATE LINK records := (.<budget[IS Budget::Record]);
31+
};
32+
ALTER TYPE default::Project {
33+
CREATE TRIGGER createBudgetOnInsert
34+
AFTER INSERT
35+
FOR EACH DO (INSERT
36+
default::Budget
37+
{
38+
createdAt := std::datetime_of_statement(),
39+
project := __new__,
40+
projectContext := __new__.projectContext
41+
});
42+
};
43+
};

0 commit comments

Comments
 (0)