@ez4/pgmigration 0.43.0 → 0.43.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.cjs +151 -146
- package/dist/main.mjs +151 -148
- package/package.json +1 -1
package/dist/main.cjs
CHANGED
|
@@ -1,156 +1,161 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof n=="object"||typeof n=="function")for(let
|
|
3
|
-
|
|
4
|
-
module.exports=
|
|
5
|
-
(0,
|
|
6
|
-
if(y.length>1&&
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
ename")}),"getTableRepositoryChanges"),
|
|
10
|
-
properties),Object.keys(n.properties)),"canRenameTable"),
|
|
1
|
+
"use strict";var F=Object.defineProperty;var le=Object.getOwnPropertyDescriptor;var de=Object.getOwnPropertyNames;var ge=Object.prototype.hasOwnProperty;var a=(e,n)=>F(e,"name",{value:n,configurable:!0});var fe=(e,n)=>{for(var f in n)F(e,f,{get:n[f],enumerable:!0})},ye=(e,n,f,h)=>{if(n&&
|
|
2
|
+
typeof n=="object"||typeof n=="function")for(let d of de(n))!ge.call(e,d)&&d!==f&&
|
|
3
|
+
F(e,d,{get:()=>n[d],enumerable:!(h=le(n,d))||h.enumerable});return e};var he=e=>ye(F({},"__esModule",{value:!0}),e);var Re={};fe(Re,{getCreateQueries:()=>me,getDeleteQueries:()=>pe,getUpdateQueries:()=>Ce});
|
|
4
|
+
module.exports=he(Re);var H=require("@ez4/pgsql");var N=require("@ez4/utils"),X=require("@ez4/pgclient/library"),Y=require("@ez4/schema");var re=a((e,n)=>(0,N.deepCompareObject)(e,n,{onSimilarName:a((f,h)=>{let d=new Set(
|
|
5
|
+
(0,N.toSnakeCase)(f).split("_")),u=new Set((0,N.toSnakeCase)(h).split("_"));for(let y of u)
|
|
6
|
+
if(y.length>1&&d.has(y))return!0;return!1},"onSimilarName"),onRename:a((f,h)=>!(0,N.isAnyObject)(
|
|
7
|
+
f)||!(0,N.isAnyObject)(h)?!1:(0,X.isTableMetadata)(f)&&(0,X.isTableMetadata)(h)?
|
|
8
|
+
xe(f.schema,h.schema):(0,Y.isAnySchema)(f)&&(0,Y.isAnySchema)(h)?Se(f,h):!1,"onR\
|
|
9
|
+
ename")}),"getTableRepositoryChanges"),xe=a((e,n)=>(0,N.deepEqual)(Object.keys(e.
|
|
10
|
+
properties),Object.keys(n.properties)),"canRenameTable"),Se=a((e,n)=>(0,N.deepEqual)(
|
|
11
11
|
e,n,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
12
|
-
Column");var
|
|
13
|
-
rawString(n)}).build();return
|
|
12
|
+
Column");var R=require("@ez4/schema"),z=require("@ez4/utils");var w=a((e,n)=>{let[f]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
|
|
13
|
+
rawString(n)}).build();return f},"getCheckConstraintQuery"),Z=a((e,n,f)=>{let[h]=e.
|
|
14
14
|
select().rawColumn("1").where({NOT:{exists:e.select().from(e.rawValue("informati\
|
|
15
|
-
on_schema.columns")).rawColumn("1").where({column_name:e.rawString(
|
|
16
|
-
rawString(n)})}}).build();return h},"getCheckColumnQuery"),
|
|
15
|
+
on_schema.columns")).rawColumn("1").where({column_name:e.rawString(f),table_name:e.
|
|
16
|
+
rawString(n)})}}).build();return h},"getCheckColumnQuery"),ee=a((e,n)=>{let[f]=e.
|
|
17
17
|
select().rawColumn("1").from("pg_constraint").where({convalidated:e.rawValue("tr\
|
|
18
|
-
ue"),conname:e.rawString(n)}).build();return
|
|
19
|
-
y");var
|
|
20
|
-
tUniqueKeyName"),
|
|
21
|
-
e,n)}_fk`,"getRelationName"),O=
|
|
22
|
-
(e,n)=>`${e}_${(0,
|
|
23
|
-
let
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return
|
|
27
|
-
validations:[]};for(let
|
|
28
|
-
properties[
|
|
29
|
-
if(
|
|
30
|
-
|
|
31
|
-
build()
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
o,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
t
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
{
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
break}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
c.indexes.push(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
indexes:[]};for(let
|
|
78
|
-
|
|
79
|
-
push(
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
18
|
+
ue"),conname:e.rawString(n)}).build();return f},"getCheckConstraintValidatedQuer\
|
|
19
|
+
y");var oe=require("@ez4/utils");var _=a((e,n)=>`${$(e,n)}_pk`,"getPrimaryKeyName"),Q=a((e,n)=>`${$(e,n)}_uk`,"ge\
|
|
20
|
+
tUniqueKeyName"),E=a((e,n)=>`${$(e,n)}_sk`,"getSecondaryKeyName"),I=a((e,n)=>`${$(
|
|
21
|
+
e,n)}_fk`,"getRelationName"),O=a((e,n)=>`${$(e,n)}_ck`,"getConstraintName"),$=a(
|
|
22
|
+
(e,n)=>`${e}_${(0,oe.toSnakeCase)(n.replaceAll(":","_"))}`,"getName");var B;(s=>{s.prepareCreate=a((t,m,i)=>{let p={constraints:[],validations:[]};for(let c in i){
|
|
23
|
+
let l=i[c];if((0,R.isEnumSchema)(l)||(0,R.isScalarSchema)(l)&&(0,z.isNotNullish)(
|
|
24
|
+
l.definitions?.value)){let x=O(m,c);p.constraints.push({check:w(t,x),query:g(t,m,
|
|
25
|
+
x,c,l).build()}),p.validations.push({check:ee(t,x),query:y(t,m,x).build(),name:x})}}
|
|
26
|
+
return p},"prepareCreate"),s.prepareUpdate=a((t,m,i,p,c)=>{let l={constraints:[],
|
|
27
|
+
validations:[]};for(let x in c){let{update:S,create:b,remove:P,nested:C}=c[x],U=[];
|
|
28
|
+
if(P||S||C){let J=p.properties[x],W={...P,...S,...C};if(o(J,W)){let j=O(m,x);U.push(
|
|
29
|
+
{query:u(t,m,j).build()})}}if(b||S||C){let J=i.properties[x],W={...b,...S,...C};
|
|
30
|
+
if(o(J,W)){let j=O(m,x),ue=U.length;U.push({...!ue&&{check:w(t,j)},query:g(t,m,j,
|
|
31
|
+
x,J).build()}),l.validations.push({check:ee(t,j),query:y(t,m,j).build(),name:j})}}
|
|
32
|
+
l.constraints.push(...U)}return l},"prepareUpdate"),s.prepareRenameTable=a((t,m,i,p)=>{
|
|
33
|
+
let c=[];for(let l in p){let x=p[l];if(r(x)){let S=O(m,l),b=O(i,l),P=t.table(i).
|
|
34
|
+
alter().existing().constraint(S).rename(b);c.push({check:w(t,b),query:P.build()})}}
|
|
35
|
+
return c},"prepareRenameTable"),s.prepareRenameColumns=a((t,m,i,p)=>{let c=[];for(let l in p){
|
|
36
|
+
let x=p[l],S=i[x];if(r(S)){let b=O(m,l),P=O(m,x),C=t.table(m).alter().existing().
|
|
37
|
+
constraint(b).rename(P);c.push({check:w(t,P),query:C.build()})}}return c},"prepa\
|
|
38
|
+
reRenameColumns"),s.prepareDelete=a((t,m,i)=>{let p=[];for(let c in i){let l=i[c];
|
|
39
|
+
if(r(l)){let x=O(m,c);p.push({query:u(t,m,x).build()})}}return p},"prepareDelete");
|
|
40
|
+
let u=a((t,m,i)=>t.table(m).alter().existing().constraint(i).drop().existing(),"\
|
|
41
|
+
getDeleteQuery"),y=a((t,m,i)=>t.table(m).alter().existing().constraint(i).validate(),
|
|
42
|
+
"getValidationQuery"),g=a((t,m,i,p,c)=>{let l=t.table(m).alter().existing().constraint(
|
|
43
|
+
i);switch(c.type){case R.SchemaType.Enum:{let x=c.options.map(({value:b})=>`${b}`);
|
|
44
|
+
l.check({[p]:{isIn:x}}).validate(!1);break}case R.SchemaType.Boolean:case R.SchemaType.
|
|
45
|
+
Number:case R.SchemaType.String:{l.check({[p]:{equal:c.definitions?.value}}).validate(
|
|
46
|
+
!1);break}}return l},"getCreateQuery"),r=a(t=>(0,R.isEnumSchema)(t)||(0,R.isScalarSchema)(
|
|
47
|
+
t)&&(0,z.isNotNullish)(t.definitions?.value),"isConstrainedSchema"),o=a((t,m)=>{
|
|
48
|
+
switch(t.type){case R.SchemaType.Boolean:case R.SchemaType.Number:case R.SchemaType.
|
|
49
|
+
String:return(0,z.isNotNullish)(m.definitions?.value)||(0,z.isNotNullish)(m.definitions?.
|
|
50
|
+
update?.value);case R.SchemaType.Enum:return(0,z.isNotNullish)(m.options)}return!1},
|
|
51
|
+
"isConstrainedChange")})(B||={});var se=require("@ez4/pgclient/library"),ie=require("@ez4/schema"),te=require("@ez4/database");var T;(g=>{g.prepareCreate=a((r,o,s,t)=>{let m=[];for(let i in t){let p=t[i];if(d(
|
|
52
|
+
p))continue;let{[p.targetColumn]:c}=s.properties,l=I(o,i),x=!!(0,ie.isNullishSchema)(
|
|
53
|
+
c);m.push({check:w(r,l),query:y(r,o,l,p,x).build()})}return m},"prepareCreate"),
|
|
54
|
+
g.prepareUpdate=a((r,o,s,t)=>{let m=[];for(let i in s){let p=s[i];if(d(p))continue;
|
|
55
|
+
let c=t[p.targetColumn]?.update,l=c?.optional??c?.nullable;if(l===void 0)continue;
|
|
56
|
+
let x=I(o,i);m.push({query:u(r,o,x).build()},{query:y(r,o,x,p,l).build()})}return m},
|
|
57
|
+
"prepareUpdate"),g.prepareRename=a((r,o,s,t)=>{let m=[];for(let i in t){let p=t[i];
|
|
58
|
+
if(d(p))continue;let c=I(o,i),l=I(s,i),x=r.table(s).alter().existing().constraint(
|
|
59
|
+
c).rename(l);m.push({check:w(r,l),query:x.build()})}return m},"prepareRename"),g.
|
|
60
|
+
prepareDelete=a((r,o,s)=>{let t=[];for(let m in s){let i=s[m];if(d(i))continue;let p=I(
|
|
61
|
+
o,m);t.push({query:u(r,o,p).build()})}return t},"prepareDelete");let d=a(r=>{let{
|
|
62
|
+
sourceIndex:o,targetIndex:s}=r;return!o||o===te.Index.Secondary||s===te.Index.Primary},
|
|
63
|
+
"isNotRealRelation"),u=a((r,o,s)=>r.table(o).alter().existing().constraint(s).drop().
|
|
64
|
+
existing(),"getDeleteQuery"),y=a((r,o,s,t,m)=>{let{sourceTable:i,sourceColumn:p,
|
|
65
|
+
targetColumn:c}=t,l=(0,se.getTableName)(i),x=r.table(o).alter().existing().constraint(
|
|
66
|
+
s),S=x.foreign(c,l,[p]).validate(!1);return m?S.delete().null():S.delete().cascade(),
|
|
67
|
+
S.update().cascade(),x},"getCreateQuery")})(T||={});var V=require("@ez4/schema"),k=require("@ez4/database");var A;(y=>{y.prepareCreate=a((g,r,o,s)=>{let t={constraints:[],validations:[],indexes:[]};
|
|
68
|
+
for(let m in s){let{columns:i,type:p,name:c}=s[m];switch(p){default:throw new Error(
|
|
69
|
+
"Unsupported index type.");case k.Index.Primary:{let l=_(r,c);t.constraints.push(
|
|
70
|
+
{check:w(g,l),query:g.table(r).alter().existing().constraint(l).primary(i).build()});
|
|
71
|
+
break}case k.Index.Unique:{let l=Q(r,c),x=u(i,o);t.indexes.push({query:g.index(l).
|
|
72
|
+
create(r,i).type(x).unique().concurrent().missing().build()}),t.validations.push(
|
|
73
|
+
{query:(0,y.getValidationQuery)(g,l),name:l});break}case k.Index.Secondary:{let l=E(
|
|
74
|
+
r,c),x=u(i,o);t.indexes.push({query:g.index(l).create(r,i).type(x).concurrent().
|
|
75
|
+
missing().build()}),t.validations.push({query:(0,y.getValidationQuery)(g,l),name:l});
|
|
76
|
+
break}}}return t},"prepareCreate"),y.prepareUpdate=a((g,r,o,s,t,m)=>{let i={constraints:[],
|
|
77
|
+
validations:[],indexes:[]};for(let p in m){let{update:c,create:l,remove:x}=m[p];
|
|
78
|
+
if(x||c){let S=(0,y.prepareDelete)(g,r,{[p]:s[p]});i.constraints.push(...S.constraints),
|
|
79
|
+
i.indexes.push(...S.indexes)}if(l||c){let S=(0,y.prepareCreate)(g,r,o,{[p]:t[p]});
|
|
80
|
+
i.constraints.push(...S.constraints),i.indexes.push(...S.indexes)}}return i},"pr\
|
|
81
|
+
epareUpdate"),y.prepareRename=a((g,r,o,s)=>{let t={validations:[],constraints:[],
|
|
82
|
+
indexes:[]};for(let m in s){let{type:i,name:p}=s[m];switch(i){default:throw new Error(
|
|
83
|
+
"Unsupported index type.");case k.Index.Primary:{let c=_(r,p),l=_(o,p);t.constraints.
|
|
84
|
+
push({check:w(g,l),query:g.table(o).alter().existing().constraint(c).rename(l).build()});
|
|
85
|
+
break}case k.Index.Unique:{let c=Q(r,p),l=Q(o,p);t.indexes.push({query:g.index(c).
|
|
86
|
+
rename(l).existing().build()});break}case k.Index.Secondary:{let c=E(r,p),l=E(o,
|
|
87
|
+
p);t.indexes.push({query:g.index(c).rename(l).existing().build()});break}}}return t},
|
|
88
|
+
"prepareRename"),y.prepareDelete=a((g,r,o)=>{let s={validations:[],constraints:[],
|
|
89
|
+
indexes:[]};for(let t in o){let{type:m,name:i}=o[t];switch(m){default:throw new Error(
|
|
90
|
+
"Unsupported index type.");case k.Index.Primary:{let p=_(r,i),c=g.table(r).alter().
|
|
91
|
+
existing().constraint(p).drop().existing();s.constraints.push({query:c.build()});
|
|
92
|
+
break}case k.Index.Unique:{let p=Q(r,i),c=g.index(p).drop().existing().concurrent();
|
|
93
|
+
s.indexes.push({query:c.build()});break}case k.Index.Secondary:{let p=E(r,i),c=g.
|
|
94
|
+
index(p).drop().existing().concurrent();s.indexes.push({query:c.build()});break}}}
|
|
95
|
+
return s},"prepareDelete"),y.getValidationQuery=a((g,r)=>{let[o]=g.select().rawColumn(
|
|
96
|
+
"1").from("pg_index").where({indexrelid:g.rawValue(`${g.rawString(r).build()}::r\
|
|
97
|
+
egclass`),indisvalid:g.rawValue("false"),indisready:g.rawValue("true")}).build();
|
|
98
|
+
return o},"getValidationQuery");let u=a((g,r)=>{if(g.length===1){let[o]=g;switch(r.
|
|
99
|
+
properties[o]?.type){case V.SchemaType.Object:case V.SchemaType.Union:case V.SchemaType.
|
|
100
|
+
Array:case V.SchemaType.Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(A||=
|
|
101
|
+
{});var ne=require("@ez4/database");var q=require("@ez4/schema"),ae=require("@ez4/utils");var K=a(e=>!!(e.nullable||e.optional),"isOptionalColumn"),M=a((e,n)=>{if((0,q.isScalarSchema)(
|
|
97
102
|
e)||(0,q.isObjectSchema)(e)||(0,q.isArraySchema)(e)||(0,q.isTupleSchema)(e)){let{
|
|
98
|
-
definitions:
|
|
99
|
-
default}`;case"string":return`'${
|
|
100
|
-
|
|
101
|
-
'${
|
|
102
|
-
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
103
|
-
null"},"getColumnDefault"),
|
|
103
|
+
definitions:f}=e;switch(typeof f?.default){case"boolean":case"number":return`${f.
|
|
104
|
+
default}`;case"string":return`'${f.default}'`;case"object":return`'${JSON.stringify(
|
|
105
|
+
f.default)}'`}}if((0,q.isEnumSchema)(e)){let{definitions:f}=e;if(f?.default)return`\
|
|
106
|
+
'${f.default}'`}if((0,q.isStringSchema)(e)&&n)switch(e.format){case"date-time":case"\
|
|
107
|
+
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(K(e))return"\
|
|
108
|
+
null"},"getColumnDefault"),L=a((e,n)=>{switch(e.type){case q.SchemaType.Array:case q.SchemaType.
|
|
104
109
|
Object:case q.SchemaType.Reference:case q.SchemaType.Union:case q.SchemaType.Tuple:
|
|
105
110
|
return"jsonb";case q.SchemaType.Boolean:return"boolean";case q.SchemaType.Enum:return"\
|
|
106
|
-
text";case q.SchemaType.Number:return
|
|
107
|
-
e)}},"getColumnType"),
|
|
108
|
-
ecimal","getColumNumberType"),
|
|
111
|
+
text";case q.SchemaType.Number:return qe(e,n);case q.SchemaType.String:return be(
|
|
112
|
+
e)}},"getColumnType"),qe=a((e,n)=>e.format==="integer"?n?"bigserial":"bigint":"d\
|
|
113
|
+
ecimal","getColumNumberType"),be=a(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
109
114
|
date":return e.format;case"date-time":return"timestamptz";default:let n=e.definitions?.
|
|
110
|
-
maxLength;return(0,
|
|
111
|
-
e");var
|
|
112
|
-
let r
|
|
113
|
-
|
|
114
|
-
let
|
|
115
|
-
|
|
116
|
-
definitions?.default,C=
|
|
117
|
-
b.optional(C)}if(
|
|
118
|
-
void 0&&b.type(
|
|
119
|
-
C)}if(
|
|
120
|
-
|
|
121
|
-
return
|
|
122
|
-
let
|
|
123
|
-
build()})}return
|
|
124
|
-
alter().existing();for(let o in
|
|
125
|
-
"prepareDelete")))(
|
|
126
|
-
properties){let
|
|
127
|
-
|
|
128
|
-
h.prepareRename=
|
|
129
|
-
epareRename"),h.prepareDelete=
|
|
130
|
-
build()}),"prepareDelete")))(
|
|
131
|
-
indexes:[]};for(let h in e){let{name:
|
|
132
|
-
push(
|
|
133
|
-
B.prepareCreate(n,
|
|
134
|
-
reateQueries"),
|
|
135
|
-
validations:[],relations:[],indexes:[]};if(
|
|
136
|
-
for(let
|
|
137
|
-
schema;
|
|
138
|
-
h,
|
|
139
|
-
h,
|
|
140
|
-
let{schema:
|
|
141
|
-
indexes,
|
|
142
|
-
h,
|
|
143
|
-
prepareUpdate(h,
|
|
144
|
-
push(...
|
|
145
|
-
h,
|
|
146
|
-
|
|
147
|
-
prepareDelete(h,
|
|
148
|
-
nested&&v(
|
|
149
|
-
h,
|
|
150
|
-
remove&&
|
|
151
|
-
|
|
152
|
-
constraints:[],validations:[],relations:[],indexes:[]};for(let h in e){let{name:
|
|
153
|
-
|
|
115
|
+
maxLength;return(0,ae.isAnyNumber)(n)?`varchar(${n})`:"text"}},"getColumnTextTyp\
|
|
116
|
+
e");var D;(d=>(d.prepareCreate=a((u,y,g,r)=>{let o=u.table(y).alter().existing();for(let s in r){
|
|
117
|
+
let t=r[s],i=g[s]?.type===ne.Index.Primary,p=!K(t),c=L(t,i),l=M(t,i);o.add(s,c,p,
|
|
118
|
+
l).missing()}return{query:o.build()}},"prepareCreate"),d.prepareUpdate=a((u,y,g,r,o)=>{
|
|
119
|
+
let s=[];for(let t in o){let{create:m,update:i,nested:p,remove:c}=o[t],l=g.properties[t],
|
|
120
|
+
S=r[t]?.type===ne.Index.Primary,b=u.table(y).alter().existing().column(t);if(m){
|
|
121
|
+
let P=m.definitions?.default,C=m?.nullable;P!==void 0&&b.default(M(l,S)),!S&&C!==
|
|
122
|
+
void 0&&b.optional(C)}if(i||p){let P=p?.definitions?.update?.default,C=i?.nullable;
|
|
123
|
+
i?.type!==void 0&&b.type(L(l,S)),P!==void 0&&b.default(M(l,S)),!S&&C!==void 0&&b.
|
|
124
|
+
optional(C)}if(c){let P=c.definitions?.default,C=c?.nullable;P!==void 0&&b.default(
|
|
125
|
+
null),!S&&C!==void 0&&b.optional(C)}b.empty||s.push({check:Z(u,y,t),query:b.build()})}
|
|
126
|
+
return s},"prepareUpdate"),d.prepareRename=a((u,y,g)=>{let r=[];for(let o in g){
|
|
127
|
+
let s=g[o],t=u.table(y).alter().existing().rename(o,s);r.push({check:Z(u,y,o),query:t.
|
|
128
|
+
build()})}return r},"prepareRename"),d.prepareDelete=a((u,y,g)=>{let r=u.table(y).
|
|
129
|
+
alter().existing();for(let o in g)r.drop(o).existing();return{query:r.build()}},
|
|
130
|
+
"prepareDelete")))(D||={});var ce=require("@ez4/database");var G;(h=>(h.prepareCreate=a((d,u,y,g)=>{let r=d.table(u).create().missing();for(let o in y.
|
|
131
|
+
properties){let s=y.properties[o],m=g[o]?.type===ce.Index.Primary,i=!K(s),p=L(s,
|
|
132
|
+
m),c=M(s,m);r.column(o,p,i,c).missing()}return{query:r.build()}},"prepareCreate"),
|
|
133
|
+
h.prepareRename=a((d,u,y)=>({query:d.table(u).rename(y).existing().build()}),"pr\
|
|
134
|
+
epareRename"),h.prepareDelete=a((d,u)=>({query:d.table(u).drop().existing().cascade().
|
|
135
|
+
build()}),"prepareDelete")))(G||={});var me=a(e=>{let n=new H.SqlBuilder,f={tables:[],constraints:[],validations:[],relations:[],
|
|
136
|
+
indexes:[]};for(let h in e){let{name:d,schema:u,indexes:y,relations:g}=e[h];f.tables.
|
|
137
|
+
push(G.prepareCreate(n,d,u,y)),f.relations.push(...T.prepareCreate(n,d,u,g)),v(f,
|
|
138
|
+
B.prepareCreate(n,d,u.properties)),v(f,A.prepareCreate(n,d,u,y))}return f},"getC\
|
|
139
|
+
reateQueries"),Ce=a((e,n)=>{let f=re(e,n),h=new H.SqlBuilder,d={tables:[],constraints:[],
|
|
140
|
+
validations:[],relations:[],indexes:[]};if(f.create&&v(d,me(f.create)),f.rename)
|
|
141
|
+
for(let u in f.rename){let y=f.rename[u],g=e[y].indexes,r=e[y].relations,o=e[y].
|
|
142
|
+
schema;d.tables.push(G.prepareRename(h,u,y)),d.constraints.push(...B.prepareRenameTable(
|
|
143
|
+
h,u,y,o.properties)),d.relations.push(...T.prepareRename(h,u,y,r)),v(d,A.prepareRename(
|
|
144
|
+
h,u,y,g))}if(f.nested)for(let u in f.nested){let{nested:y}=f.nested[u];if(!y)continue;
|
|
145
|
+
let{schema:g,relations:r,indexes:o}=y,s=g?.nested?.properties,t=e[u].relations,m=n[u].
|
|
146
|
+
indexes,i=e[u].indexes,p=n[u].schema,c=e[u].schema;s?.create&&(d.tables.push(D.prepareCreate(
|
|
147
|
+
h,u,i,s.create)),v(d,B.prepareCreate(h,u,s.create))),s?.nested&&(d.tables.push(...D.
|
|
148
|
+
prepareUpdate(h,u,c,i,s.nested)),v(d,B.prepareUpdate(h,u,c,p,s.nested)),d.relations.
|
|
149
|
+
push(...T.prepareUpdate(h,u,t,s.nested))),s?.rename&&(d.tables.push(...D.prepareRename(
|
|
150
|
+
h,u,s.rename)),d.constraints.push(...B.prepareRenameColumns(h,u,c.properties,s.rename))),
|
|
151
|
+
s?.remove&&(d.tables.push(D.prepareDelete(h,u,s.remove)),d.constraints.push(...B.
|
|
152
|
+
prepareDelete(h,u,s.remove))),o?.create&&v(d,A.prepareCreate(h,u,c,o.create)),o?.
|
|
153
|
+
nested&&v(d,A.prepareUpdate(h,u,c,m,i,o.nested)),o?.remove&&v(d,A.prepareDelete(
|
|
154
|
+
h,u,o.remove)),r?.create&&d.relations.push(...T.prepareCreate(h,u,c,r.create)),r?.
|
|
155
|
+
remove&&d.relations.push(...T.prepareDelete(h,u,r.remove))}return f.remove&&v(d,
|
|
156
|
+
pe(f.remove)),d},"getUpdateQueries"),pe=a(e=>{let n=new H.SqlBuilder,f={tables:[],
|
|
157
|
+
constraints:[],validations:[],relations:[],indexes:[]};for(let h in e){let{name:d}=e[h];
|
|
158
|
+
f.tables.push(G.prepareDelete(n,d))}return f},"getDeleteQueries"),v=a((e,n)=>{n.
|
|
154
159
|
tables&&e.tables.push(...n.tables),n.constraints&&e.constraints.push(...n.constraints),
|
|
155
160
|
n.validations&&e.validations.push(...n.validations),n.relations&&e.relations.push(
|
|
156
161
|
...n.relations),n.indexes&&e.indexes.push(...n.indexes)},"combineQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
|
package/dist/main.mjs
CHANGED
|
@@ -1,151 +1,154 @@
|
|
|
1
|
-
var
|
|
2
|
-
import{isTableMetadata as
|
|
3
|
-
|
|
4
|
-
milarName"),onRename:
|
|
5
|
-
y)&&
|
|
6
|
-
keys(
|
|
7
|
-
|
|
8
|
-
lumn");import{isEnumSchema as
|
|
9
|
-
isNotNullish as
|
|
10
|
-
rawString(
|
|
11
|
-
select().rawColumn("1").where({NOT:{exists:
|
|
12
|
-
on_schema.columns")).rawColumn("1").where({column_name:
|
|
13
|
-
rawString(
|
|
14
|
-
select().rawColumn("1").from("pg_constraint").where({convalidated:
|
|
15
|
-
ue"),conname:
|
|
16
|
-
y");import{toSnakeCase as
|
|
17
|
-
tUniqueKeyName"),
|
|
18
|
-
|
|
19
|
-
(
|
|
20
|
-
let
|
|
21
|
-
{check:R(
|
|
22
|
-
|
|
23
|
-
let
|
|
24
|
-
if(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
query:
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"getDeleteQuery"),
|
|
38
|
-
"getValidationQuery"),
|
|
39
|
-
|
|
40
|
-
{[
|
|
41
|
-
check({[
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
for(let
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
(
|
|
57
|
-
r
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
l
|
|
66
|
-
|
|
67
|
-
{query:(0,f.getValidationQuery)(
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
l,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
s,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
1
|
+
var ce=Object.defineProperty;var i=(e,c)=>ce(e,"name",{value:c,configurable:!0});import{SqlBuilder as W}from"@ez4/pgsql";import{deepEqual as te,deepCompareObject as me,isAnyObject as X,toSnakeCase as Y}from"@ez4/utils";
|
|
2
|
+
import{isTableMetadata as Z}from"@ez4/pgclient/library";import{isAnySchema as ee}from"@ez4/schema";var ne=i((e,c)=>me(e,c,{onSimilarName:i((y,h)=>{let g=new Set(Y(y).split("_")),u=new Set(
|
|
3
|
+
Y(h).split("_"));for(let f of u)if(f.length>1&&g.has(f))return!0;return!1},"onSi\
|
|
4
|
+
milarName"),onRename:i((y,h)=>!X(y)||!X(h)?!1:Z(y)&&Z(h)?pe(y.schema,h.schema):ee(
|
|
5
|
+
y)&&ee(h)?ue(y,h):!1,"onRename")}),"getTableRepositoryChanges"),pe=i((e,c)=>te(Object.
|
|
6
|
+
keys(e.properties),Object.keys(c.properties)),"canRenameTable"),ue=i((e,c)=>te(e,
|
|
7
|
+
c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRenameCo\
|
|
8
|
+
lumn");import{isEnumSchema as re,isScalarSchema as oe,SchemaType as v}from"@ez4/schema";
|
|
9
|
+
import{isNotNullish as E}from"@ez4/utils";var R=i((e,c)=>{let[y]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
|
|
10
|
+
rawString(c)}).build();return y},"getCheckConstraintQuery"),F=i((e,c,y)=>{let[h]=e.
|
|
11
|
+
select().rawColumn("1").where({NOT:{exists:e.select().from(e.rawValue("informati\
|
|
12
|
+
on_schema.columns")).rawColumn("1").where({column_name:e.rawString(y),table_name:e.
|
|
13
|
+
rawString(c)})}}).build();return h},"getCheckColumnQuery"),H=i((e,c)=>{let[y]=e.
|
|
14
|
+
select().rawColumn("1").from("pg_constraint").where({convalidated:e.rawValue("tr\
|
|
15
|
+
ue"),conname:e.rawString(c)}).build();return y},"getCheckConstraintValidatedQuer\
|
|
16
|
+
y");import{toSnakeCase as le}from"@ez4/utils";var D=i((e,c)=>`${Q(e,c)}_pk`,"getPrimaryKeyName"),U=i((e,c)=>`${Q(e,c)}_uk`,"ge\
|
|
17
|
+
tUniqueKeyName"),_=i((e,c)=>`${Q(e,c)}_sk`,"getSecondaryKeyName"),A=i((e,c)=>`${Q(
|
|
18
|
+
e,c)}_fk`,"getRelationName"),N=i((e,c)=>`${Q(e,c)}_ck`,"getConstraintName"),Q=i(
|
|
19
|
+
(e,c)=>`${e}_${le(c.replaceAll(":","_"))}`,"getName");var O;(o=>{o.prepareCreate=i((t,m,s)=>{let p={constraints:[],validations:[]};for(let a in s){
|
|
20
|
+
let l=s[a];if(re(l)||oe(l)&&E(l.definitions?.value)){let x=N(m,a);p.constraints.
|
|
21
|
+
push({check:R(t,x),query:d(t,m,x,a,l).build()}),p.validations.push({check:H(t,x),
|
|
22
|
+
query:f(t,m,x).build(),name:x})}}return p},"prepareCreate"),o.prepareUpdate=i((t,m,s,p,a)=>{
|
|
23
|
+
let l={constraints:[],validations:[]};for(let x in a){let{update:S,create:q,remove:C,
|
|
24
|
+
nested:b}=a[x],M=[];if(C||S||b){let L=p.properties[x],J={...C,...S,...b};if(r(L,
|
|
25
|
+
J)){let B=N(m,x);M.push({query:u(t,m,B).build()})}}if(q||S||b){let L=s.properties[x],
|
|
26
|
+
J={...q,...S,...b};if(r(L,J)){let B=N(m,x),ae=M.length;M.push({...!ae&&{check:R(
|
|
27
|
+
t,B)},query:d(t,m,B,x,L).build()}),l.validations.push({check:H(t,B),query:f(t,m,
|
|
28
|
+
B).build(),name:B})}}l.constraints.push(...M)}return l},"prepareUpdate"),o.prepareRenameTable=
|
|
29
|
+
i((t,m,s,p)=>{let a=[];for(let l in p){let x=p[l];if(n(x)){let S=N(m,l),q=N(s,l),
|
|
30
|
+
C=t.table(s).alter().existing().constraint(S).rename(q);a.push({check:R(t,q),query:C.
|
|
31
|
+
build()})}}return a},"prepareRenameTable"),o.prepareRenameColumns=i((t,m,s,p)=>{
|
|
32
|
+
let a=[];for(let l in p){let x=p[l],S=s[x];if(n(S)){let q=N(m,l),C=N(m,x),b=t.table(
|
|
33
|
+
m).alter().existing().constraint(q).rename(C);a.push({check:R(t,C),query:b.build()})}}
|
|
34
|
+
return a},"prepareRenameColumns"),o.prepareDelete=i((t,m,s)=>{let p=[];for(let a in s){
|
|
35
|
+
let l=s[a];if(n(l)){let x=N(m,a);p.push({query:u(t,m,x).build()})}}return p},"pr\
|
|
36
|
+
epareDelete");let u=i((t,m,s)=>t.table(m).alter().existing().constraint(s).drop().
|
|
37
|
+
existing(),"getDeleteQuery"),f=i((t,m,s)=>t.table(m).alter().existing().constraint(
|
|
38
|
+
s).validate(),"getValidationQuery"),d=i((t,m,s,p,a)=>{let l=t.table(m).alter().existing().
|
|
39
|
+
constraint(s);switch(a.type){case v.Enum:{let x=a.options.map(({value:q})=>`${q}`);
|
|
40
|
+
l.check({[p]:{isIn:x}}).validate(!1);break}case v.Boolean:case v.Number:case v.String:{
|
|
41
|
+
l.check({[p]:{equal:a.definitions?.value}}).validate(!1);break}}return l},"getCr\
|
|
42
|
+
eateQuery"),n=i(t=>re(t)||oe(t)&&E(t.definitions?.value),"isConstrainedSchema"),
|
|
43
|
+
r=i((t,m)=>{switch(t.type){case v.Boolean:case v.Number:case v.String:return E(m.
|
|
44
|
+
definitions?.value)||E(m.definitions?.update?.value);case v.Enum:return E(m.options)}
|
|
45
|
+
return!1},"isConstrainedChange")})(O||={});import{getTableName as de}from"@ez4/pgclient/library";import{isNullishSchema as ge}from"@ez4/schema";
|
|
46
|
+
import{Index as se}from"@ez4/database";var j;(d=>{d.prepareCreate=i((n,r,o,t)=>{let m=[];for(let s in t){let p=t[s];if(g(
|
|
47
|
+
p))continue;let{[p.targetColumn]:a}=o.properties,l=A(r,s),x=!!ge(a);m.push({check:R(
|
|
48
|
+
n,l),query:f(n,r,l,p,x).build()})}return m},"prepareCreate"),d.prepareUpdate=i((n,r,o,t)=>{
|
|
49
|
+
let m=[];for(let s in o){let p=o[s];if(g(p))continue;let a=t[p.targetColumn]?.update,
|
|
50
|
+
l=a?.optional??a?.nullable;if(l===void 0)continue;let x=A(r,s);m.push({query:u(n,
|
|
51
|
+
r,x).build()},{query:f(n,r,x,p,l).build()})}return m},"prepareUpdate"),d.prepareRename=
|
|
52
|
+
i((n,r,o,t)=>{let m=[];for(let s in t){let p=t[s];if(g(p))continue;let a=A(r,s),
|
|
53
|
+
l=A(o,s),x=n.table(o).alter().existing().constraint(a).rename(l);m.push({check:R(
|
|
54
|
+
n,l),query:x.build()})}return m},"prepareRename"),d.prepareDelete=i((n,r,o)=>{let t=[];
|
|
55
|
+
for(let m in o){let s=o[m];if(g(s))continue;let p=A(r,m);t.push({query:u(n,r,p).
|
|
56
|
+
build()})}return t},"prepareDelete");let g=i(n=>{let{sourceIndex:r,targetIndex:o}=n;
|
|
57
|
+
return!r||r===se.Secondary||o===se.Primary},"isNotRealRelation"),u=i((n,r,o)=>n.
|
|
58
|
+
table(r).alter().existing().constraint(o).drop().existing(),"getDeleteQuery"),f=i(
|
|
59
|
+
(n,r,o,t,m)=>{let{sourceTable:s,sourceColumn:p,targetColumn:a}=t,l=de(s),x=n.table(
|
|
60
|
+
r).alter().existing().constraint(o),S=x.foreign(a,l,[p]).validate(!1);return m?S.
|
|
61
|
+
delete().null():S.delete().cascade(),S.update().cascade(),x},"getCreateQuery")})(
|
|
62
|
+
j||={});import{SchemaType as G}from"@ez4/schema";import{Index as w}from"@ez4/database";var T;(f=>{f.prepareCreate=i((d,n,r,o)=>{let t={constraints:[],validations:[],indexes:[]};
|
|
63
|
+
for(let m in o){let{columns:s,type:p,name:a}=o[m];switch(p){default:throw new Error(
|
|
64
|
+
"Unsupported index type.");case w.Primary:{let l=D(n,a);t.constraints.push({check:R(
|
|
65
|
+
d,l),query:d.table(n).alter().existing().constraint(l).primary(s).build()});break}case w.
|
|
66
|
+
Unique:{let l=U(n,a),x=u(s,r);t.indexes.push({query:d.index(l).create(n,s).type(
|
|
67
|
+
x).unique().concurrent().missing().build()}),t.validations.push({query:(0,f.getValidationQuery)(
|
|
68
|
+
d,l),name:l});break}case w.Secondary:{let l=_(n,a),x=u(s,r);t.indexes.push({query:d.
|
|
69
|
+
index(l).create(n,s).type(x).concurrent().missing().build()}),t.validations.push(
|
|
70
|
+
{query:(0,f.getValidationQuery)(d,l),name:l});break}}}return t},"prepareCreate"),
|
|
71
|
+
f.prepareUpdate=i((d,n,r,o,t,m)=>{let s={constraints:[],validations:[],indexes:[]};
|
|
72
|
+
for(let p in m){let{update:a,create:l,remove:x}=m[p];if(x||a){let S=(0,f.prepareDelete)(
|
|
73
|
+
d,n,{[p]:o[p]});s.constraints.push(...S.constraints),s.indexes.push(...S.indexes)}
|
|
74
|
+
if(l||a){let S=(0,f.prepareCreate)(d,n,r,{[p]:t[p]});s.constraints.push(...S.constraints),
|
|
75
|
+
s.indexes.push(...S.indexes)}}return s},"prepareUpdate"),f.prepareRename=i((d,n,r,o)=>{
|
|
76
|
+
let t={validations:[],constraints:[],indexes:[]};for(let m in o){let{type:s,name:p}=o[m];
|
|
77
|
+
switch(s){default:throw new Error("Unsupported index type.");case w.Primary:{let a=D(
|
|
78
|
+
n,p),l=D(r,p);t.constraints.push({check:R(d,l),query:d.table(r).alter().existing().
|
|
79
|
+
constraint(a).rename(l).build()});break}case w.Unique:{let a=U(n,p),l=U(r,p);t.indexes.
|
|
80
|
+
push({query:d.index(a).rename(l).existing().build()});break}case w.Secondary:{let a=_(
|
|
81
|
+
n,p),l=_(r,p);t.indexes.push({query:d.index(a).rename(l).existing().build()});break}}}
|
|
82
|
+
return t},"prepareRename"),f.prepareDelete=i((d,n,r)=>{let o={validations:[],constraints:[],
|
|
83
|
+
indexes:[]};for(let t in r){let{type:m,name:s}=r[t];switch(m){default:throw new Error(
|
|
84
|
+
"Unsupported index type.");case w.Primary:{let p=D(n,s),a=d.table(n).alter().existing().
|
|
85
|
+
constraint(p).drop().existing();o.constraints.push({query:a.build()});break}case w.
|
|
86
|
+
Unique:{let p=U(n,s),a=d.index(p).drop().existing().concurrent();o.indexes.push(
|
|
87
|
+
{query:a.build()});break}case w.Secondary:{let p=_(n,s),a=d.index(p).drop().existing().
|
|
88
|
+
concurrent();o.indexes.push({query:a.build()});break}}}return o},"prepareDelete"),
|
|
89
|
+
f.getValidationQuery=i((d,n)=>{let[r]=d.select().rawColumn("1").from("pg_index").
|
|
90
|
+
where({indexrelid:d.rawValue(`${d.rawString(n).build()}::regclass`),indisvalid:d.
|
|
91
|
+
rawValue("false"),indisready:d.rawValue("true")}).build();return r},"getValidati\
|
|
92
|
+
onQuery");let u=i((d,n)=>{if(d.length===1){let[r]=d;switch(n.properties[r]?.type){case G.
|
|
93
|
+
Object:case G.Union:case G.Array:case G.Tuple:return"GIN"}}return"BTREE"},"getIn\
|
|
94
|
+
dexType")})(T||={});import{Index as ie}from"@ez4/database";import{isArraySchema as fe,isEnumSchema as ye,isObjectSchema as he,isScalarSchema as xe,
|
|
95
|
+
isStringSchema as Se,isTupleSchema as qe,SchemaType as k}from"@ez4/schema";import{
|
|
96
|
+
isAnyNumber as be}from"@ez4/utils";var $=i(e=>!!(e.nullable||e.optional),"isOptionalColumn"),I=i((e,c)=>{if(xe(e)||
|
|
97
|
+
he(e)||fe(e)||qe(e)){let{definitions:y}=e;switch(typeof y?.default){case"boolean":case"\
|
|
95
98
|
number":return`${y.default}`;case"string":return`'${y.default}'`;case"object":return`\
|
|
96
|
-
'${JSON.stringify(y.default)}'`}}if(
|
|
97
|
-
'${y.default}'`}if(
|
|
98
|
-
e":return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
99
|
-
ColumnDefault"),
|
|
99
|
+
'${JSON.stringify(y.default)}'`}}if(ye(e)){let{definitions:y}=e;if(y?.default)return`\
|
|
100
|
+
'${y.default}'`}if(Se(e)&&c)switch(e.format){case"date-time":case"date":case"tim\
|
|
101
|
+
e":return"now()";case"uuid":return"gen_random_uuid()"}if($(e))return"null"},"get\
|
|
102
|
+
ColumnDefault"),V=i((e,c)=>{switch(e.type){case k.Array:case k.Object:case k.Reference:case k.
|
|
100
103
|
Union:case k.Tuple:return"jsonb";case k.Boolean:return"boolean";case k.Enum:return"\
|
|
101
|
-
text";case k.Number:return
|
|
102
|
-
|
|
103
|
-
rType"),
|
|
104
|
-
date-time":return"timestamptz";default:let
|
|
105
|
-
|
|
106
|
-
let n
|
|
107
|
-
return{query:r.build()}},"prepareCreate"),g.prepareUpdate=
|
|
108
|
-
for(let
|
|
109
|
-
|
|
110
|
-
definitions?.default,b=
|
|
111
|
-
q.optional(b)}if(
|
|
112
|
-
void 0&&q.type(
|
|
113
|
-
b)}if(
|
|
114
|
-
!
|
|
115
|
-
return
|
|
116
|
-
let
|
|
117
|
-
build()})}return
|
|
118
|
-
alter().existing();for(let r in
|
|
119
|
-
"prepareDelete")))(
|
|
120
|
-
properties){let
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
prepareDelete=
|
|
124
|
-
"prepareDelete")))(
|
|
125
|
-
indexes:[]};for(let h in
|
|
126
|
-
push(
|
|
127
|
-
|
|
128
|
-
reateQueries"),
|
|
129
|
-
relations:[],indexes:[]};if(y.create&&P(g,
|
|
130
|
-
rename){let f=y.rename[
|
|
131
|
-
push(
|
|
132
|
-
properties)),g.relations.push(...
|
|
133
|
-
|
|
134
|
-
let{schema:
|
|
135
|
-
indexes,
|
|
136
|
-
h,
|
|
137
|
-
prepareUpdate(h,
|
|
138
|
-
push(...
|
|
139
|
-
h,
|
|
140
|
-
|
|
141
|
-
prepareDelete(h,
|
|
142
|
-
nested&&P(g,
|
|
143
|
-
h,
|
|
144
|
-
remove&&g.relations.push(...
|
|
145
|
-
|
|
146
|
-
validations:[],relations:[],indexes:[]};for(let h in
|
|
147
|
-
push(
|
|
148
|
-
tables.push(...
|
|
149
|
-
|
|
150
|
-
|
|
104
|
+
text";case k.Number:return Ce(e,c);case k.String:return Re(e)}},"getColumnType"),
|
|
105
|
+
Ce=i((e,c)=>e.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
106
|
+
rType"),Re=i(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
|
|
107
|
+
date-time":return"timestamptz";default:let c=e.definitions?.maxLength;return be(
|
|
108
|
+
c)?`varchar(${c})`:"text"}},"getColumnTextType");var z;(g=>(g.prepareCreate=i((u,f,d,n)=>{let r=u.table(f).alter().existing();for(let o in n){
|
|
109
|
+
let t=n[o],s=d[o]?.type===ie.Primary,p=!$(t),a=V(t,s),l=I(t,s);r.add(o,a,p,l).missing()}
|
|
110
|
+
return{query:r.build()}},"prepareCreate"),g.prepareUpdate=i((u,f,d,n,r)=>{let o=[];
|
|
111
|
+
for(let t in r){let{create:m,update:s,nested:p,remove:a}=r[t],l=d.properties[t],
|
|
112
|
+
S=n[t]?.type===ie.Primary,q=u.table(f).alter().existing().column(t);if(m){let C=m.
|
|
113
|
+
definitions?.default,b=m?.nullable;C!==void 0&&q.default(I(l,S)),!S&&b!==void 0&&
|
|
114
|
+
q.optional(b)}if(s||p){let C=p?.definitions?.update?.default,b=s?.nullable;s?.type!==
|
|
115
|
+
void 0&&q.type(V(l,S)),C!==void 0&&q.default(I(l,S)),!S&&b!==void 0&&q.optional(
|
|
116
|
+
b)}if(a){let C=a.definitions?.default,b=a?.nullable;C!==void 0&&q.default(null),
|
|
117
|
+
!S&&b!==void 0&&q.optional(b)}q.empty||o.push({check:F(u,f,t),query:q.build()})}
|
|
118
|
+
return o},"prepareUpdate"),g.prepareRename=i((u,f,d)=>{let n=[];for(let r in d){
|
|
119
|
+
let o=d[r],t=u.table(f).alter().existing().rename(r,o);n.push({check:F(u,f,r),query:t.
|
|
120
|
+
build()})}return n},"prepareRename"),g.prepareDelete=i((u,f,d)=>{let n=u.table(f).
|
|
121
|
+
alter().existing();for(let r in d)n.drop(r).existing();return{query:n.build()}},
|
|
122
|
+
"prepareDelete")))(z||={});import{Index as Pe}from"@ez4/database";var K;(h=>(h.prepareCreate=i((g,u,f,d)=>{let n=g.table(u).create().missing();for(let r in f.
|
|
123
|
+
properties){let o=f.properties[r],m=d[r]?.type===Pe.Primary,s=!$(o),p=V(o,m),a=I(
|
|
124
|
+
o,m);n.column(r,p,s,a).missing()}return{query:n.build()}},"prepareCreate"),h.prepareRename=
|
|
125
|
+
i((g,u,f)=>({query:g.table(u).rename(f).existing().build()}),"prepareRename"),h.
|
|
126
|
+
prepareDelete=i((g,u)=>({query:g.table(u).drop().existing().cascade().build()}),
|
|
127
|
+
"prepareDelete")))(K||={});var Ne=i(e=>{let c=new W,y={tables:[],constraints:[],validations:[],relations:[],
|
|
128
|
+
indexes:[]};for(let h in e){let{name:g,schema:u,indexes:f,relations:d}=e[h];y.tables.
|
|
129
|
+
push(K.prepareCreate(c,g,u,f)),y.relations.push(...j.prepareCreate(c,g,u,d)),P(y,
|
|
130
|
+
O.prepareCreate(c,g,u.properties)),P(y,T.prepareCreate(c,g,u,f))}return y},"getC\
|
|
131
|
+
reateQueries"),Rt=i((e,c)=>{let y=ne(e,c),h=new W,g={tables:[],constraints:[],validations:[],
|
|
132
|
+
relations:[],indexes:[]};if(y.create&&P(g,Ne(y.create)),y.rename)for(let u in y.
|
|
133
|
+
rename){let f=y.rename[u],d=e[f].indexes,n=e[f].relations,r=e[f].schema;g.tables.
|
|
134
|
+
push(K.prepareRename(h,u,f)),g.constraints.push(...O.prepareRenameTable(h,u,f,r.
|
|
135
|
+
properties)),g.relations.push(...j.prepareRename(h,u,f,n)),P(g,T.prepareRename(h,
|
|
136
|
+
u,f,d))}if(y.nested)for(let u in y.nested){let{nested:f}=y.nested[u];if(!f)continue;
|
|
137
|
+
let{schema:d,relations:n,indexes:r}=f,o=d?.nested?.properties,t=e[u].relations,m=c[u].
|
|
138
|
+
indexes,s=e[u].indexes,p=c[u].schema,a=e[u].schema;o?.create&&(g.tables.push(z.prepareCreate(
|
|
139
|
+
h,u,s,o.create)),P(g,O.prepareCreate(h,u,o.create))),o?.nested&&(g.tables.push(...z.
|
|
140
|
+
prepareUpdate(h,u,a,s,o.nested)),P(g,O.prepareUpdate(h,u,a,p,o.nested)),g.relations.
|
|
141
|
+
push(...j.prepareUpdate(h,u,t,o.nested))),o?.rename&&(g.tables.push(...z.prepareRename(
|
|
142
|
+
h,u,o.rename)),g.constraints.push(...O.prepareRenameColumns(h,u,a.properties,o.rename))),
|
|
143
|
+
o?.remove&&(g.tables.push(z.prepareDelete(h,u,o.remove)),g.constraints.push(...O.
|
|
144
|
+
prepareDelete(h,u,o.remove))),r?.create&&P(g,T.prepareCreate(h,u,a,r.create)),r?.
|
|
145
|
+
nested&&P(g,T.prepareUpdate(h,u,a,m,s,r.nested)),r?.remove&&P(g,T.prepareDelete(
|
|
146
|
+
h,u,r.remove)),n?.create&&g.relations.push(...j.prepareCreate(h,u,a,n.create)),n?.
|
|
147
|
+
remove&&g.relations.push(...j.prepareDelete(h,u,n.remove))}return y.remove&&P(g,
|
|
148
|
+
we(y.remove)),g},"getUpdateQueries"),we=i(e=>{let c=new W,y={tables:[],constraints:[],
|
|
149
|
+
validations:[],relations:[],indexes:[]};for(let h in e){let{name:g}=e[h];y.tables.
|
|
150
|
+
push(K.prepareDelete(c,g))}return y},"getDeleteQueries"),P=i((e,c)=>{c.tables&&e.
|
|
151
|
+
tables.push(...c.tables),c.constraints&&e.constraints.push(...c.constraints),c.validations&&
|
|
152
|
+
e.validations.push(...c.validations),c.relations&&e.relations.push(...c.relations),
|
|
153
|
+
c.indexes&&e.indexes.push(...c.indexes)},"combineQueries");export{Ne as getCreateQueries,we as getDeleteQueries,Rt as getUpdateQueries};
|
|
151
154
|
//# sourceMappingURL=main.mjs.map
|