@ez4/pgmigration 0.41.0 → 0.43.0
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/library.cjs +102 -94
- package/dist/library.mjs +98 -91
- package/dist/main.cjs +151 -136
- package/dist/main.mjs +150 -133
- package/dist/queries/constraints.d.ts +5 -11
- package/dist/queries/indexes.d.ts +4 -3
- package/dist/types/query.d.ts +6 -0
- package/dist/utils/checks.d.ts +1 -0
- package/package.json +6 -6
package/dist/library.cjs
CHANGED
|
@@ -1,99 +1,107 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof
|
|
3
|
-
|
|
4
|
-
TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
rawColumn("1").from("
|
|
13
|
-
"
|
|
1
|
+
"use strict";var _=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var ne=Object.prototype.hasOwnProperty;var r=(e,o)=>_(e,"name",{value:o,configurable:!0});var re=(e,o)=>{for(var l in o)_(e,l,{get:o[l],enumerable:!0})},oe=(e,o,l,f)=>{if(o&&
|
|
2
|
+
typeof o=="object"||typeof o=="function")for(let y of te(o))!ne.call(e,y)&&y!==l&&
|
|
3
|
+
_(e,y,{get:()=>o[y],enumerable:!(f=ee(o,y))||f.enumerable});return e};var ie=e=>oe(_({},"__esModule",{value:!0}),e);var pe={};re(pe,{ColumnQuery:()=>Q,DatabaseQueries:()=>F,IndexQueries:()=>W,RelationQuery:()=>Z,
|
|
4
|
+
TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(pe);var b=require("@ez4/utils"),$=require("@ez4/pgclient/library"),E=require("@ez4/schema");var se=r((e,o)=>(0,b.deepCompareObject)(e,o,{onSimilarName:r((l,f)=>{let y=new Set(
|
|
5
|
+
(0,b.toSnakeCase)(l).split("_")),x=new Set((0,b.toSnakeCase)(f).split("_"));for(let d of x)
|
|
6
|
+
if(d.length>1&&y.has(d))return!0;return!1},"onSimilarName"),onRename:r((l,f)=>!(0,b.isAnyObject)(
|
|
7
|
+
l)||!(0,b.isAnyObject)(f)?!1:(0,$.isTableMetadata)(l)&&(0,$.isTableMetadata)(f)?
|
|
8
|
+
ae(l.schema,f.schema):(0,E.isAnySchema)(l)&&(0,E.isAnySchema)(f)?ce(l,f):!1,"onR\
|
|
9
|
+
ename")}),"getTableRepositoryChanges"),ae=r((e,o)=>(0,b.deepEqual)(Object.keys(e.
|
|
10
|
+
properties),Object.keys(o.properties)),"canRenameTable"),ce=r((e,o)=>(0,b.deepEqual)(
|
|
11
|
+
e,o,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
12
|
+
Column");var V=require("@ez4/pgsql");var K=r((e,o)=>{let[l]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
13
|
+
rawString(o)}).build();return l},"getCheckDatabaseQuery"),N=r((e,o)=>{let[l]=e.select().
|
|
14
|
+
rawColumn("1").from("pg_constraint").where({conname:e.rawString(o)}).build();return l},
|
|
15
|
+
"getCheckConstraintQuery"),U=r((e,o,l)=>{let[f]=e.select().rawColumn("1").where(
|
|
14
16
|
{NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
|
|
15
|
-
"1").where({column_name:e.rawString(
|
|
16
|
-
"getCheckColumnQuery");var F;(
|
|
17
|
-
CREATE DATABASE "${
|
|
18
|
-
TABASE IF EXISTS "${
|
|
19
|
-
e)||(0,
|
|
20
|
-
definitions:
|
|
21
|
-
default}`;case"string":return`'${
|
|
22
|
-
|
|
23
|
-
'${
|
|
17
|
+
"1").where({column_name:e.rawString(l),table_name:e.rawString(o)})}}).build();return f},
|
|
18
|
+
"getCheckColumnQuery");var F;(l=>(l.prepareCreate=r(f=>{let y=new V.SqlBuilder;return{check:K(y,f),query:`\
|
|
19
|
+
CREATE DATABASE "${f}"`}},"prepareCreate"),l.prepareDelete=r(f=>({query:`DROP DA\
|
|
20
|
+
TABASE IF EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var S=require("@ez4/schema"),L=require("@ez4/utils");var B=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=r((e,o)=>{if((0,S.isScalarSchema)(
|
|
21
|
+
e)||(0,S.isObjectSchema)(e)||(0,S.isArraySchema)(e)||(0,S.isTupleSchema)(e)){let{
|
|
22
|
+
definitions:l}=e;switch(typeof l?.default){case"boolean":case"number":return`${l.
|
|
23
|
+
default}`;case"string":return`'${l.default}'`;case"object":return`'${JSON.stringify(
|
|
24
|
+
l.default)}'`}}if((0,S.isEnumSchema)(e)){let{definitions:l}=e;if(l?.default)return`\
|
|
25
|
+
'${l.default}'`}if((0,S.isStringSchema)(e)&&o)switch(e.format){case"date-time":case"\
|
|
24
26
|
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(B(e))return"\
|
|
25
|
-
null"},"getColumnDefault"),
|
|
26
|
-
Object:case
|
|
27
|
-
return"jsonb";case
|
|
28
|
-
text";case
|
|
29
|
-
e)}},"getColumnType"),me=r((e,
|
|
30
|
-
ecimal","getColumNumberType"),
|
|
31
|
-
date":return e.format;case"date-time":return"timestamptz";default:let
|
|
32
|
-
maxLength;return(0,L.isAnyNumber)(
|
|
33
|
-
properties){let s=
|
|
34
|
-
|
|
35
|
-
prepareRename=r((
|
|
36
|
-
areRename"),
|
|
37
|
-
build()}),"prepareDelete")))(H||={});var z=require("@ez4/schema"),
|
|
38
|
-
tUniqueKeyName"),
|
|
39
|
-
e,
|
|
40
|
-
let{columns:
|
|
41
|
-
type.");case
|
|
42
|
-
|
|
43
|
-
Unique:{let
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
push({query:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
p)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
let
|
|
58
|
-
build()});break}
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
let
|
|
65
|
-
build()});break}
|
|
66
|
-
|
|
27
|
+
null"},"getColumnDefault"),T=r((e,o)=>{switch(e.type){case S.SchemaType.Array:case S.SchemaType.
|
|
28
|
+
Object:case S.SchemaType.Reference:case S.SchemaType.Union:case S.SchemaType.Tuple:
|
|
29
|
+
return"jsonb";case S.SchemaType.Boolean:return"boolean";case S.SchemaType.Enum:return"\
|
|
30
|
+
text";case S.SchemaType.Number:return me(e,o);case S.SchemaType.String:return ue(
|
|
31
|
+
e)}},"getColumnType"),me=r((e,o)=>e.format==="integer"?o?"bigserial":"bigint":"d\
|
|
32
|
+
ecimal","getColumNumberType"),ue=r(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
33
|
+
date":return e.format;case"date-time":return"timestamptz";default:let o=e.definitions?.
|
|
34
|
+
maxLength;return(0,L.isAnyNumber)(o)?`varchar(${o})`:"text"}},"getColumnTextType");var H;(f=>(f.prepareCreate=r((y,x,d,i)=>{let t=y.table(x).create().missing();for(let n in d.
|
|
35
|
+
properties){let s=d.properties[n],g=i[n]?.type===G.Index.Primary,m=!B(s),c=T(s,g),
|
|
36
|
+
p=P(s,g);t.column(n,c,m,p).missing()}return{query:t.build()}},"prepareCreate"),f.
|
|
37
|
+
prepareRename=r((y,x,d)=>({query:y.table(x).rename(d).existing().build()}),"prep\
|
|
38
|
+
areRename"),f.prepareDelete=r((y,x)=>({query:y.table(x).drop().existing().cascade().
|
|
39
|
+
build()}),"prepareDelete")))(H||={});var z=require("@ez4/schema"),C=require("@ez4/database");var J=require("@ez4/utils");var j=r((e,o)=>`${D(e,o)}_pk`,"getPrimaryKeyName"),A=r((e,o)=>`${D(e,o)}_uk`,"ge\
|
|
40
|
+
tUniqueKeyName"),I=r((e,o)=>`${D(e,o)}_sk`,"getSecondaryKeyName"),O=r((e,o)=>`${D(
|
|
41
|
+
e,o)}_fk`,"getRelationName");var D=r((e,o)=>`${e}_${(0,J.toSnakeCase)(o.replaceAll(":","_"))}`,"getName");var W;(d=>{d.prepareCreate=r((i,t,n,s)=>{let a={constraints:[],validations:[],indexes:[]};
|
|
42
|
+
for(let g in s){let{columns:m,type:c,name:p}=s[g];switch(c){default:throw new Error(
|
|
43
|
+
"Unsupported index type.");case C.Index.Primary:{let u=j(t,p);a.constraints.push(
|
|
44
|
+
{check:N(i,u),query:i.table(t).alter().existing().constraint(u).primary(m).build()});
|
|
45
|
+
break}case C.Index.Unique:{let u=A(t,p),h=x(m,n);a.indexes.push({query:i.index(u).
|
|
46
|
+
create(t,m).type(h).unique().concurrent().missing().build()}),a.validations.push(
|
|
47
|
+
{query:(0,d.getValidationQuery)(i,u),name:u});break}case C.Index.Secondary:{let u=I(
|
|
48
|
+
t,p),h=x(m,n);a.indexes.push({query:i.index(u).create(t,m).type(h).concurrent().
|
|
49
|
+
missing().build()}),a.validations.push({query:(0,d.getValidationQuery)(i,u),name:u});
|
|
50
|
+
break}}}return a},"prepareCreate"),d.prepareUpdate=r((i,t,n,s,a,g)=>{let m={constraints:[],
|
|
51
|
+
validations:[],indexes:[]};for(let c in g){let{update:p,create:u,remove:h}=g[c];
|
|
52
|
+
if(h||p){let q=(0,d.prepareDelete)(i,t,{[c]:s[c]});m.constraints.push(...q.constraints),
|
|
53
|
+
m.indexes.push(...q.indexes)}if(u||p){let q=(0,d.prepareCreate)(i,t,n,{[c]:a[c]});
|
|
54
|
+
m.constraints.push(...q.constraints),m.indexes.push(...q.indexes)}}return m},"pr\
|
|
55
|
+
epareUpdate"),d.prepareRename=r((i,t,n,s)=>{let a={validations:[],constraints:[],
|
|
56
|
+
indexes:[]};for(let g in s){let{type:m,name:c}=s[g];switch(m){default:throw new Error(
|
|
57
|
+
"Unsupported index type.");case C.Index.Primary:{let p=j(t,c),u=j(n,c);a.constraints.
|
|
58
|
+
push({check:N(i,u),query:i.table(n).alter().existing().constraint(p).rename(u).build()});
|
|
59
|
+
break}case C.Index.Unique:{let p=A(t,c),u=A(n,c);a.indexes.push({query:i.index(p).
|
|
60
|
+
rename(u).existing().build()});break}case C.Index.Secondary:{let p=I(t,c),u=I(n,
|
|
61
|
+
c);a.indexes.push({query:i.index(p).rename(u).existing().build()});break}}}return a},
|
|
62
|
+
"prepareRename"),d.prepareDelete=r((i,t,n)=>{let s={validations:[],constraints:[],
|
|
63
|
+
indexes:[]};for(let a in n){let{type:g,name:m}=n[a];switch(g){default:throw new Error(
|
|
64
|
+
"Unsupported index type.");case C.Index.Primary:{let c=j(t,m),p=i.table(t).alter().
|
|
65
|
+
existing().constraint(c).drop().existing();s.constraints.push({query:p.build()});
|
|
66
|
+
break}case C.Index.Unique:{let c=A(t,m),p=i.index(c).drop().existing().concurrent();
|
|
67
|
+
s.indexes.push({query:p.build()});break}case C.Index.Secondary:{let c=I(t,m),p=i.
|
|
68
|
+
index(c).drop().existing().concurrent();s.indexes.push({query:p.build()});break}}}
|
|
69
|
+
return s},"prepareDelete"),d.getValidationQuery=r((i,t)=>{let[n]=i.select().rawColumn(
|
|
70
|
+
"1").from("pg_index").where({indexrelid:i.rawValue(`${i.rawString(t).build()}::r\
|
|
71
|
+
egclass`),indisvalid:i.rawValue("false"),indisready:i.rawValue("true")}).build();
|
|
72
|
+
return n},"getValidationQuery");let x=r((i,t)=>{if(i.length===1){let[n]=i;switch(t.
|
|
73
|
+
properties[n]?.type){case z.SchemaType.Object:case z.SchemaType.Union:case z.SchemaType.
|
|
67
74
|
Array:case z.SchemaType.Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(W||=
|
|
68
|
-
{});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
let
|
|
73
|
-
let
|
|
74
|
-
"prepareUpdate"),
|
|
75
|
-
if(
|
|
76
|
-
|
|
77
|
-
prepareDelete=r((
|
|
78
|
-
|
|
79
|
-
sourceIndex:
|
|
80
|
-
"isNotRealRelation"),
|
|
81
|
-
existing(),"getDeleteQuery"),
|
|
82
|
-
targetColumn:
|
|
83
|
-
s).foreign(
|
|
84
|
-
|
|
85
|
-
let a=
|
|
86
|
-
|
|
87
|
-
let s=[];for(let a in
|
|
88
|
-
|
|
89
|
-
definitions?.default,
|
|
90
|
-
|
|
91
|
-
R.type(
|
|
92
|
-
definitions?.default,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
existing().rename(
|
|
96
|
-
|
|
97
|
-
|
|
75
|
+
{});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),v=require("@ez4/database");var Z;(i=>{i.prepareCreate=r((t,n,s,a)=>{let g=[];for(let m in a){let c=a[m];if(y(
|
|
76
|
+
c))continue;let{[c.targetColumn]:p}=s.properties,u=O(n,m),h=!!(0,Y.isNullishSchema)(
|
|
77
|
+
p);g.push({check:N(t,u),query:d(t,n,u,c,h).build()})}return g},"prepareCreate"),
|
|
78
|
+
i.prepareUpdate=r((t,n,s,a)=>{let g=[];for(let m in s){let c=s[m];if(y(c))continue;
|
|
79
|
+
let p=a[c.targetColumn]?.update,u=p?.optional??p?.nullable;if(u===void 0)continue;
|
|
80
|
+
let h=O(n,m);g.push({query:x(t,n,h).build()},{query:d(t,n,h,c,u).build()})}return g},
|
|
81
|
+
"prepareUpdate"),i.prepareRename=r((t,n,s,a)=>{let g=[];for(let m in a){let c=a[m];
|
|
82
|
+
if(y(c))continue;let p=O(n,m),u=O(s,m),h=t.table(s).alter().existing().constraint(
|
|
83
|
+
p).rename(u);g.push({check:N(t,u),query:h.build()})}return g},"prepareRename"),i.
|
|
84
|
+
prepareDelete=r((t,n,s)=>{let a=[];for(let g in s){let m=s[g];if(y(m))continue;let c=O(
|
|
85
|
+
n,g);a.push({query:x(t,n,c).build()})}return a},"prepareDelete");let y=r(t=>{let{
|
|
86
|
+
sourceIndex:n,targetIndex:s}=t;return!n||n===v.Index.Secondary||s===v.Index.Primary},
|
|
87
|
+
"isNotRealRelation"),x=r((t,n,s)=>t.table(n).alter().existing().constraint(s).drop().
|
|
88
|
+
existing(),"getDeleteQuery"),d=r((t,n,s,a,g)=>{let{sourceTable:m,sourceColumn:c,
|
|
89
|
+
targetColumn:p}=a,u=(0,X.getTableName)(m),h=t.table(n).alter().existing().constraint(
|
|
90
|
+
s),q=h.foreign(p,u,[c]).validate(!1);return g?q.delete().null():q.delete().cascade(),
|
|
91
|
+
q.update().cascade(),h},"getCreateQuery")})(Z||={});var M=require("@ez4/database");var Q;(y=>(y.prepareCreate=r((x,d,i,t)=>{let n=x.table(d).alter().existing();for(let s in t){
|
|
92
|
+
let a=t[s],m=i[s]?.type===M.Index.Primary,c=!B(a),p=T(a,m),u=P(a,m);n.add(s,p,c,
|
|
93
|
+
u).missing()}return{query:n.build()}},"prepareCreate"),y.prepareUpdate=r((x,d,i,t,n)=>{
|
|
94
|
+
let s=[];for(let a in n){let{create:g,update:m,nested:c,remove:p}=n[a],u=i.properties[a],
|
|
95
|
+
q=t[a]?.type===M.Index.Primary,R=x.table(d).alter().existing().column(a);if(g){let k=g.
|
|
96
|
+
definitions?.default,w=g?.nullable;k!==void 0&&R.default(P(u,q)),!q&&w!==void 0&&
|
|
97
|
+
R.optional(w)}if(m||c){let k=c?.definitions?.update?.default,w=m?.nullable;m?.type!==
|
|
98
|
+
void 0&&R.type(T(u,q)),k!==void 0&&R.default(P(u,q)),!q&&w!==void 0&&R.optional(
|
|
99
|
+
w)}if(p){let k=p.definitions?.default,w=p?.nullable;k!==void 0&&R.default(null),
|
|
100
|
+
!q&&w!==void 0&&R.optional(w)}R.empty||s.push({check:U(x,d,a),query:R.build()})}
|
|
101
|
+
return s},"prepareUpdate"),y.prepareRename=r((x,d,i)=>{let t=[];for(let n in i){
|
|
102
|
+
let s=i[n],a=x.table(d).alter().existing().rename(n,s);t.push({check:U(x,d,n),query:a.
|
|
103
|
+
build()})}return t},"prepareRename"),y.prepareDelete=r((x,d,i)=>{let t=x.table(d).
|
|
104
|
+
alter().existing();for(let n in i)t.drop(n).existing();return{query:t.build()}},
|
|
105
|
+
"prepareDelete")))(Q||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
|
|
98
106
|
getTableRepositoryChanges});
|
|
99
107
|
//# sourceMappingURL=library.cjs.map
|
package/dist/library.mjs
CHANGED
|
@@ -1,94 +1,101 @@
|
|
|
1
|
-
var
|
|
2
|
-
isTableMetadata as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
rawColumn("1").from("
|
|
9
|
-
"
|
|
1
|
+
var F=Object.defineProperty;var r=(e,m)=>F(e,"name",{value:m,configurable:!0});import{deepEqual as v,deepCompareObject as L,isAnyObject as D,toSnakeCase as $}from"@ez4/utils";
|
|
2
|
+
import{isTableMetadata as E}from"@ez4/pgclient/library";import{isAnySchema as U}from"@ez4/schema";var Se=r((e,m)=>L(e,m,{onSimilarName:r((g,f)=>{let x=new Set($(g).split("_")),y=new Set(
|
|
3
|
+
$(f).split("_"));for(let l of y)if(l.length>1&&x.has(l))return!0;return!1},"onSi\
|
|
4
|
+
milarName"),onRename:r((g,f)=>!D(g)||!D(f)?!1:E(g)&&E(f)?G(g.schema,f.schema):U(
|
|
5
|
+
g)&&U(f)?H(g,f):!1,"onRename")}),"getTableRepositoryChanges"),G=r((e,m)=>v(Object.
|
|
6
|
+
keys(e.properties),Object.keys(m.properties)),"canRenameTable"),H=r((e,m)=>v(e,m,
|
|
7
|
+
{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRenameColu\
|
|
8
|
+
mn");import{SqlBuilder as J}from"@ez4/pgsql";var M=r((e,m)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
9
|
+
rawString(m)}).build();return g},"getCheckDatabaseQuery"),w=r((e,m)=>{let[g]=e.select().
|
|
10
|
+
rawColumn("1").from("pg_constraint").where({conname:e.rawString(m)}).build();return g},
|
|
11
|
+
"getCheckConstraintQuery"),_=r((e,m,g)=>{let[f]=e.select().rawColumn("1").where(
|
|
10
12
|
{NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
|
|
11
|
-
"1").where({column_name:e.rawString(
|
|
12
|
-
"getCheckColumnQuery");var
|
|
13
|
-
ATABASE "${f}"`}},"prepareCreate"),
|
|
14
|
-
F EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(
|
|
15
|
-
isStringSchema as
|
|
16
|
-
isAnyNumber as
|
|
17
|
-
e)||
|
|
18
|
-
number":return`${
|
|
19
|
-
'${JSON.stringify(
|
|
20
|
-
'${
|
|
21
|
-
return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
22
|
-
|
|
13
|
+
"1").where({column_name:e.rawString(g),table_name:e.rawString(m)})}}).build();return f},
|
|
14
|
+
"getCheckColumnQuery");var W;(g=>(g.prepareCreate=r(f=>{let x=new J;return{check:M(x,f),query:`CREATE D\
|
|
15
|
+
ATABASE "${f}"`}},"prepareCreate"),g.prepareDelete=r(f=>({query:`DROP DATABASE I\
|
|
16
|
+
F EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(W||={});import{Index as ie}from"@ez4/database";import{isArraySchema as X,isEnumSchema as Y,isObjectSchema as Z,isScalarSchema as Q,
|
|
17
|
+
isStringSchema as ee,isTupleSchema as te,SchemaType as b}from"@ez4/schema";import{
|
|
18
|
+
isAnyNumber as ne}from"@ez4/utils";var k=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=r((e,m)=>{if(Q(e)||Z(
|
|
19
|
+
e)||X(e)||te(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
|
|
20
|
+
number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
|
|
21
|
+
'${JSON.stringify(g.default)}'`}}if(Y(e)){let{definitions:g}=e;if(g?.default)return`\
|
|
22
|
+
'${g.default}'`}if(ee(e)&&m)switch(e.format){case"date-time":case"date":case"tim\
|
|
23
|
+
e":return"now()";case"uuid":return"gen_random_uuid()"}if(k(e))return"null"},"get\
|
|
24
|
+
ColumnDefault"),B=r((e,m)=>{switch(e.type){case b.Array:case b.Object:case b.Reference:case b.
|
|
23
25
|
Union:case b.Tuple:return"jsonb";case b.Boolean:return"boolean";case b.Enum:return"\
|
|
24
|
-
text";case b.Number:return
|
|
25
|
-
|
|
26
|
-
rType"),
|
|
27
|
-
date-time":return"timestamptz";default:let
|
|
28
|
-
|
|
29
|
-
properties){let i=
|
|
30
|
-
i,
|
|
31
|
-
|
|
32
|
-
prepareDelete=
|
|
33
|
-
"prepareDelete")))(
|
|
34
|
-
tUniqueKeyName"),A=
|
|
35
|
-
e,
|
|
36
|
-
let{columns:
|
|
37
|
-
type.");case
|
|
38
|
-
|
|
39
|
-
let
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
p
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
t).
|
|
77
|
-
let{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
S=r
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
26
|
+
text";case b.Number:return re(e,m);case b.String:return oe(e)}},"getColumnType"),
|
|
27
|
+
re=r((e,m)=>e.format==="integer"?m?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
28
|
+
rType"),oe=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
|
|
29
|
+
date-time":return"timestamptz";default:let m=e.definitions?.maxLength;return ne(
|
|
30
|
+
m)?`varchar(${m})`:"text"}},"getColumnTextType");var se;(f=>(f.prepareCreate=r((x,y,l,o)=>{let t=x.table(y).create().missing();for(let n in l.
|
|
31
|
+
properties){let i=l.properties[n],d=o[n]?.type===ie.Primary,c=!k(i),a=B(i,d),p=N(
|
|
32
|
+
i,d);t.column(n,a,c,p).missing()}return{query:t.build()}},"prepareCreate"),f.prepareRename=
|
|
33
|
+
r((x,y,l)=>({query:x.table(y).rename(l).existing().build()}),"prepareRename"),f.
|
|
34
|
+
prepareDelete=r((x,y)=>({query:x.table(y).drop().existing().cascade().build()}),
|
|
35
|
+
"prepareDelete")))(se||={});import{SchemaType as z}from"@ez4/schema";import{Index as C}from"@ez4/database";import{toSnakeCase as ae}from"@ez4/utils";var T=r((e,m)=>`${I(e,m)}_pk`,"getPrimaryKeyName"),j=r((e,m)=>`${I(e,m)}_uk`,"ge\
|
|
36
|
+
tUniqueKeyName"),A=r((e,m)=>`${I(e,m)}_sk`,"getSecondaryKeyName"),P=r((e,m)=>`${I(
|
|
37
|
+
e,m)}_fk`,"getRelationName");var I=r((e,m)=>`${e}_${ae(m.replaceAll(":","_"))}`,"getName");var ce;(l=>{l.prepareCreate=r((o,t,n,i)=>{let s={constraints:[],validations:[],indexes:[]};
|
|
38
|
+
for(let d in i){let{columns:c,type:a,name:p}=i[d];switch(a){default:throw new Error(
|
|
39
|
+
"Unsupported index type.");case C.Primary:{let u=T(t,p);s.constraints.push({check:w(
|
|
40
|
+
o,u),query:o.table(t).alter().existing().constraint(u).primary(c).build()});break}case C.
|
|
41
|
+
Unique:{let u=j(t,p),S=y(c,n);s.indexes.push({query:o.index(u).create(t,c).type(
|
|
42
|
+
S).unique().concurrent().missing().build()}),s.validations.push({query:(0,l.getValidationQuery)(
|
|
43
|
+
o,u),name:u});break}case C.Secondary:{let u=A(t,p),S=y(c,n);s.indexes.push({query:o.
|
|
44
|
+
index(u).create(t,c).type(S).concurrent().missing().build()}),s.validations.push(
|
|
45
|
+
{query:(0,l.getValidationQuery)(o,u),name:u});break}}}return s},"prepareCreate"),
|
|
46
|
+
l.prepareUpdate=r((o,t,n,i,s,d)=>{let c={constraints:[],validations:[],indexes:[]};
|
|
47
|
+
for(let a in d){let{update:p,create:u,remove:S}=d[a];if(S||p){let h=(0,l.prepareDelete)(
|
|
48
|
+
o,t,{[a]:i[a]});c.constraints.push(...h.constraints),c.indexes.push(...h.indexes)}
|
|
49
|
+
if(u||p){let h=(0,l.prepareCreate)(o,t,n,{[a]:s[a]});c.constraints.push(...h.constraints),
|
|
50
|
+
c.indexes.push(...h.indexes)}}return c},"prepareUpdate"),l.prepareRename=r((o,t,n,i)=>{
|
|
51
|
+
let s={validations:[],constraints:[],indexes:[]};for(let d in i){let{type:c,name:a}=i[d];
|
|
52
|
+
switch(c){default:throw new Error("Unsupported index type.");case C.Primary:{let p=T(
|
|
53
|
+
t,a),u=T(n,a);s.constraints.push({check:w(o,u),query:o.table(n).alter().existing().
|
|
54
|
+
constraint(p).rename(u).build()});break}case C.Unique:{let p=j(t,a),u=j(n,a);s.indexes.
|
|
55
|
+
push({query:o.index(p).rename(u).existing().build()});break}case C.Secondary:{let p=A(
|
|
56
|
+
t,a),u=A(n,a);s.indexes.push({query:o.index(p).rename(u).existing().build()});break}}}
|
|
57
|
+
return s},"prepareRename"),l.prepareDelete=r((o,t,n)=>{let i={validations:[],constraints:[],
|
|
58
|
+
indexes:[]};for(let s in n){let{type:d,name:c}=n[s];switch(d){default:throw new Error(
|
|
59
|
+
"Unsupported index type.");case C.Primary:{let a=T(t,c),p=o.table(t).alter().existing().
|
|
60
|
+
constraint(a).drop().existing();i.constraints.push({query:p.build()});break}case C.
|
|
61
|
+
Unique:{let a=j(t,c),p=o.index(a).drop().existing().concurrent();i.indexes.push(
|
|
62
|
+
{query:p.build()});break}case C.Secondary:{let a=A(t,c),p=o.index(a).drop().existing().
|
|
63
|
+
concurrent();i.indexes.push({query:p.build()});break}}}return i},"prepareDelete"),
|
|
64
|
+
l.getValidationQuery=r((o,t)=>{let[n]=o.select().rawColumn("1").from("pg_index").
|
|
65
|
+
where({indexrelid:o.rawValue(`${o.rawString(t).build()}::regclass`),indisvalid:o.
|
|
66
|
+
rawValue("false"),indisready:o.rawValue("true")}).build();return n},"getValidati\
|
|
67
|
+
onQuery");let y=r((o,t)=>{if(o.length===1){let[n]=o;switch(t.properties[n]?.type){case z.
|
|
68
|
+
Object:case z.Union:case z.Array:case z.Tuple:return"GIN"}}return"BTREE"},"getIn\
|
|
69
|
+
dexType")})(ce||={});import{getTableName as me}from"@ez4/pgclient/library";import{isNullishSchema as ue}from"@ez4/schema";
|
|
70
|
+
import{Index as K}from"@ez4/database";var pe;(o=>{o.prepareCreate=r((t,n,i,s)=>{let d=[];for(let c in s){let a=s[c];if(x(
|
|
71
|
+
a))continue;let{[a.targetColumn]:p}=i.properties,u=P(n,c),S=!!ue(p);d.push({check:w(
|
|
72
|
+
t,u),query:l(t,n,u,a,S).build()})}return d},"prepareCreate"),o.prepareUpdate=r((t,n,i,s)=>{
|
|
73
|
+
let d=[];for(let c in i){let a=i[c];if(x(a))continue;let p=s[a.targetColumn]?.update,
|
|
74
|
+
u=p?.optional??p?.nullable;if(u===void 0)continue;let S=P(n,c);d.push({query:y(t,
|
|
75
|
+
n,S).build()},{query:l(t,n,S,a,u).build()})}return d},"prepareUpdate"),o.prepareRename=
|
|
76
|
+
r((t,n,i,s)=>{let d=[];for(let c in s){let a=s[c];if(x(a))continue;let p=P(n,c),
|
|
77
|
+
u=P(i,c),S=t.table(i).alter().existing().constraint(p).rename(u);d.push({check:w(
|
|
78
|
+
t,u),query:S.build()})}return d},"prepareRename"),o.prepareDelete=r((t,n,i)=>{let s=[];
|
|
79
|
+
for(let d in i){let c=i[d];if(x(c))continue;let a=P(n,d);s.push({query:y(t,n,a).
|
|
80
|
+
build()})}return s},"prepareDelete");let x=r(t=>{let{sourceIndex:n,targetIndex:i}=t;
|
|
81
|
+
return!n||n===K.Secondary||i===K.Primary},"isNotRealRelation"),y=r((t,n,i)=>t.table(
|
|
82
|
+
n).alter().existing().constraint(i).drop().existing(),"getDeleteQuery"),l=r((t,n,i,s,d)=>{
|
|
83
|
+
let{sourceTable:c,sourceColumn:a,targetColumn:p}=s,u=me(c),S=t.table(n).alter().
|
|
84
|
+
existing().constraint(i),h=S.foreign(p,u,[a]).validate(!1);return d?h.delete().null():
|
|
85
|
+
h.delete().cascade(),h.update().cascade(),S},"getCreateQuery")})(pe||={});import{Index as V}from"@ez4/database";var le;(x=>(x.prepareCreate=r((y,l,o,t)=>{let n=y.table(l).alter().existing();for(let i in t){
|
|
86
|
+
let s=t[i],c=o[i]?.type===V.Primary,a=!k(s),p=B(s,c),u=N(s,c);n.add(i,p,a,u).missing()}
|
|
87
|
+
return{query:n.build()}},"prepareCreate"),x.prepareUpdate=r((y,l,o,t,n)=>{let i=[];
|
|
88
|
+
for(let s in n){let{create:d,update:c,nested:a,remove:p}=n[s],u=o.properties[s],
|
|
89
|
+
h=t[s]?.type===V.Primary,q=y.table(l).alter().existing().column(s);if(d){let O=d.
|
|
90
|
+
definitions?.default,R=d?.nullable;O!==void 0&&q.default(N(u,h)),!h&&R!==void 0&&
|
|
91
|
+
q.optional(R)}if(c||a){let O=a?.definitions?.update?.default,R=c?.nullable;c?.type!==
|
|
92
|
+
void 0&&q.type(B(u,h)),O!==void 0&&q.default(N(u,h)),!h&&R!==void 0&&q.optional(
|
|
93
|
+
R)}if(p){let O=p.definitions?.default,R=p?.nullable;O!==void 0&&q.default(null),
|
|
94
|
+
!h&&R!==void 0&&q.optional(R)}q.empty||i.push({check:_(y,l,s),query:q.build()})}
|
|
95
|
+
return i},"prepareUpdate"),x.prepareRename=r((y,l,o)=>{let t=[];for(let n in o){
|
|
96
|
+
let i=o[n],s=y.table(l).alter().existing().rename(n,i);t.push({check:_(y,l,n),query:s.
|
|
97
|
+
build()})}return t},"prepareRename"),x.prepareDelete=r((y,l,o)=>{let t=y.table(l).
|
|
98
|
+
alter().existing();for(let n in o)t.drop(n).existing();return{query:t.build()}},
|
|
99
|
+
"prepareDelete")))(le||={});export{le as ColumnQuery,W as DatabaseQueries,ce as IndexQueries,pe as RelationQuery,
|
|
100
|
+
se as TableQuery,Se as getTableRepositoryChanges};
|
|
94
101
|
//# sourceMappingURL=library.mjs.map
|