@ez4/pgmigration 0.28.0 → 0.29.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 +85 -82
- package/dist/library.mjs +76 -73
- package/dist/main.cjs +122 -119
- package/dist/main.mjs +123 -120
- package/package.json +6 -6
package/dist/library.cjs
CHANGED
|
@@ -1,91 +1,94 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof t=="object"||typeof t=="function")for(let
|
|
3
|
-
|
|
4
|
-
TableQuery:()=>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
ename")}),"getTableRepositoryChanges"),
|
|
8
|
-
properties),Object.keys(t.properties)),"canRenameTable"),
|
|
1
|
+
"use strict";var z=Object.defineProperty;var ee=Object.getOwnPropertyDescriptor;var te=Object.getOwnPropertyNames;var re=Object.prototype.hasOwnProperty;var n=(e,t)=>z(e,"name",{value:t,configurable:!0});var ne=(e,t)=>{for(var l in t)z(e,l,{get:t[l],enumerable:!0})},oe=(e,t,l,y)=>{if(t&&
|
|
2
|
+
typeof t=="object"||typeof t=="function")for(let d of te(t))!re.call(e,d)&&d!==l&&
|
|
3
|
+
z(e,d,{get:()=>t[d],enumerable:!(y=ee(t,d))||y.enumerable});return e};var ie=e=>oe(z({},"__esModule",{value:!0}),e);var pe={};ne(pe,{ColumnQuery:()=>Q,DatabaseQueries:()=>F,IndexQueries:()=>W,RelationQuery:()=>Z,
|
|
4
|
+
TableQuery:()=>H,getTableRepositoryChanges:()=>se});module.exports=ie(pe);var R=require("@ez4/utils"),_=require("@ez4/pgclient/library"),$=require("@ez4/schema");var se=n((e,t)=>(0,R.deepCompareObject)(e,t,{onRename:n((l,y)=>!(0,R.isAnyObject)(
|
|
5
|
+
l)||!(0,R.isAnyObject)(y)?!1:(0,_.isTableMetadata)(l)&&(0,_.isTableMetadata)(y)?
|
|
6
|
+
ae(l.schema,y.schema):(0,$.isAnySchema)(l)&&(0,$.isAnySchema)(y)?ce(l,y):!1,"onR\
|
|
7
|
+
ename")}),"getTableRepositoryChanges"),ae=n((e,t)=>(0,R.deepEqual)(Object.keys(e.
|
|
8
|
+
properties),Object.keys(t.properties)),"canRenameTable"),ce=n((e,t)=>(0,R.deepEqual)(
|
|
9
9
|
e,t,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
10
|
-
Column");var
|
|
11
|
-
rawString(t)}).build();return
|
|
12
|
-
rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return
|
|
13
|
-
"getCheckConstraintQuery"),
|
|
14
|
-
|
|
15
|
-
t)}).build();return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
default
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
10
|
+
Column");var v=require("@ez4/pgsql");var V=n((e,t)=>{let[l]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
11
|
+
rawString(t)}).build();return l},"getCheckDatabaseQuery"),N=n((e,t)=>{let[l]=e.select().
|
|
12
|
+
rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();return l},
|
|
13
|
+
"getCheckConstraintQuery"),U=n((e,t,l)=>{let[y]=e.select().rawColumn("1").where(
|
|
14
|
+
{NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
|
|
15
|
+
"1").where({column_name:e.rawString(l),table_name:e.rawString(t)})}}).build();return y},
|
|
16
|
+
"getCheckColumnQuery");var F;(l=>(l.prepareCreate=n(y=>{let d=new v.SqlBuilder;return{check:V(d,y),query:`\
|
|
17
|
+
CREATE DATABASE "${y}"`}},"prepareCreate"),l.prepareDelete=n(y=>({query:`DROP DA\
|
|
18
|
+
TABASE IF EXISTS "${y}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var x=require("@ez4/schema"),L=require("@ez4/utils");var I=n(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=n((e,t)=>{if((0,x.isScalarSchema)(
|
|
19
|
+
e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
|
|
20
|
+
definitions:l}=e;switch(typeof l?.default){case"boolean":case"number":return`${l.
|
|
21
|
+
default}`;case"string":return`'${l.default}'`;case"object":return`'${JSON.stringify(
|
|
22
|
+
l.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:l}=e;if(l?.default)return`\
|
|
23
|
+
'${l.default}'`}if((0,x.isStringSchema)(e)&&t)switch(e.format){case"date-time":case"\
|
|
24
|
+
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(I(e))return"\
|
|
25
|
+
null"},"getColumnDefault"),w=n((e,t)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
|
|
26
|
+
Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
|
|
27
|
+
return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
|
|
28
|
+
text";case x.SchemaType.Number:return me(e,t);case x.SchemaType.String:return ue(
|
|
29
|
+
e)}},"getColumnType"),me=n((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d\
|
|
30
|
+
ecimal","getColumNumberType"),ue=n(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
30
31
|
date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
|
|
31
|
-
maxLength;return(0,L.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var
|
|
32
|
-
properties){let o=m.properties[r],a=g[r]?.type===
|
|
33
|
-
|
|
34
|
-
prepareRename=n((
|
|
35
|
-
areRename"),
|
|
36
|
-
build()}),"prepareDelete")))(
|
|
37
|
-
tUniqueKeyName"),
|
|
38
|
-
e,t)}_fk`,"getRelationName");var
|
|
39
|
-
let{columns:a,type:
|
|
40
|
-
type.");case q.Index.Primary:{let
|
|
41
|
-
|
|
42
|
-
Unique:{let
|
|
43
|
-
push({check:
|
|
44
|
-
|
|
45
|
-
push({query:S.build()});break}}}return o},"prepareCreate"),
|
|
32
|
+
maxLength;return(0,L.isAnyNumber)(t)?`varchar(${t})`:"text"}},"getColumnTextType");var H;(y=>(y.prepareCreate=n((d,c,m,g)=>{let i=d.table(c).create().missing();for(let r in m.
|
|
33
|
+
properties){let o=m.properties[r],a=g[r]?.type===G.Index.Primary,p=!I(o),u=w(o,a),
|
|
34
|
+
f=P(o,a);i.column(r,u,p,f).missing()}return{query:i.build()}},"prepareCreate"),y.
|
|
35
|
+
prepareRename=n((d,c,m)=>({query:d.table(c).rename(m).existing().build()}),"prep\
|
|
36
|
+
areRename"),y.prepareDelete=n((d,c)=>({query:d.table(c).drop().existing().cascade().
|
|
37
|
+
build()}),"prepareDelete")))(H||={});var j=require("@ez4/schema"),q=require("@ez4/database");var J=require("@ez4/utils");var B=n((e,t)=>`${D(e,t)}_pk`,"getPrimaryKeyName"),A=n((e,t)=>`${D(e,t)}_uk`,"ge\
|
|
38
|
+
tUniqueKeyName"),T=n((e,t)=>`${D(e,t)}_sk`,"getSecondaryKeyName"),k=n((e,t)=>`${D(
|
|
39
|
+
e,t)}_fk`,"getRelationName");var D=n((e,t)=>`${e}_${(0,J.toSnakeCase)(t.replaceAll(":","_"))}`,"getName");var W;(d=>{d.prepareCreate=n((c,m,g,i,r)=>{let o={constraints:[],indexes:[]};for(let s in i){
|
|
40
|
+
let{columns:a,type:p}=i[s];switch(p){default:throw new Error("Unsupported index \
|
|
41
|
+
type.");case q.Index.Primary:{let u=B(m,s),f=c.table(m).alter().existing().constraint(
|
|
42
|
+
u).primary(a);o.constraints.push({check:N(c,u),query:f.build()});break}case q.Index.
|
|
43
|
+
Unique:{let u=A(m,s),f=c.table(m).alter().existing().constraint(u).unique(a);o.constraints.
|
|
44
|
+
push({check:N(c,u),query:f.build()});break}case q.Index.Secondary:{let u=T(m,s),
|
|
45
|
+
f=y(a,g),S=c.index(u).create(m,a).type(f).missing();r&&S.concurrent(),o.indexes.
|
|
46
|
+
push({query:S.build()});break}}}return o},"prepareCreate"),d.prepareRename=n((c,m,g,i)=>{
|
|
46
47
|
let r={constraints:[],indexes:[]};for(let o in i){let{type:s}=i[o];switch(s){default:
|
|
47
|
-
throw new Error("Unsupported index type.");case q.Index.Primary:{let a=
|
|
48
|
-
g,o),
|
|
49
|
-
{check:
|
|
50
|
-
|
|
51
|
-
c,
|
|
52
|
-
a).rename(
|
|
53
|
-
pareRename"),
|
|
48
|
+
throw new Error("Unsupported index type.");case q.Index.Primary:{let a=B(m,o),p=B(
|
|
49
|
+
g,o),u=c.table(g).alter().existing().constraint(a).rename(p);r.constraints.push(
|
|
50
|
+
{check:N(c,p),query:u.build()});break}case q.Index.Unique:{let a=A(m,o),p=A(g,o),
|
|
51
|
+
u=c.table(g).alter().existing().constraint(a).rename(p);r.constraints.push({check:N(
|
|
52
|
+
c,p),query:u.build()});break}case q.Index.Secondary:{let a=T(m,o),p=T(g,o),u=c.index(
|
|
53
|
+
a).rename(p).existing();r.indexes.push({query:u.build()});break}}}return r},"pre\
|
|
54
|
+
pareRename"),d.prepareDelete=n((c,m,g)=>{let i={constraints:[],indexes:[]};for(let r in g){
|
|
54
55
|
let{type:o}=g[r];switch(o){default:throw new Error("Unsupported index type.");case q.Index.
|
|
55
|
-
Primary:{let s=
|
|
56
|
-
i.constraints.push({query:a.build()});break}case q.Index.Unique:{let s=
|
|
56
|
+
Primary:{let s=B(m,r),a=c.table(m).alter().existing().constraint(s).drop().existing();
|
|
57
|
+
i.constraints.push({query:a.build()});break}case q.Index.Unique:{let s=A(m,r),a=c.
|
|
57
58
|
table(m).alter().existing().constraint(s).drop().existing();i.constraints.push({
|
|
58
|
-
query:a.build()});break}case q.Index.Secondary:{let s=
|
|
59
|
+
query:a.build()});break}case q.Index.Secondary:{let s=T(m,r),a=c.index(s).drop().
|
|
59
60
|
existing().concurrent();i.indexes.push({query:a.build()});break}}}return i},"pre\
|
|
60
|
-
pareDelete");let
|
|
61
|
-
Object:case
|
|
62
|
-
GIN"}}return"BTREE"},"getIndexType")})(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
g.prepareUpdate=n((i,r,o,s)=>{let a=[];for(let
|
|
66
|
-
let
|
|
67
|
-
let h=
|
|
68
|
-
"prepareUpdate"),g.prepareRename=n((i,r,o,s)=>{let a=[];for(let
|
|
69
|
-
if(
|
|
70
|
-
|
|
71
|
-
prepareDelete=n((i,r,o)=>{let s=[];for(let a in o){let
|
|
72
|
-
r,a);s.push({query:c(i,r,
|
|
73
|
-
sourceIndex:r,targetIndex:o}=i;return!r||r
|
|
61
|
+
pareDelete");let y=n((c,m)=>{if(c.length===1){let[g]=c;switch(m.properties[g]?.type){case j.SchemaType.
|
|
62
|
+
Object:case j.SchemaType.Union:case j.SchemaType.Array:case j.SchemaType.Tuple:return"\
|
|
63
|
+
GIN"}}return"BTREE"},"getIndexType")})(W||={});var X=require("@ez4/pgclient/library"),Y=require("@ez4/schema"),M=require("@ez4/database");var Z;(g=>{g.prepareCreate=n((i,r,o,s)=>{let a=[];for(let p in s){let u=s[p];if(d(
|
|
64
|
+
u))continue;let{[u.targetColumn]:f}=o.properties,S=k(r,p),h=!!(0,Y.IsNullishSchema)(
|
|
65
|
+
f);a.push({check:N(i,S),query:m(i,r,S,u,h).build()})}return a},"prepareCreate"),
|
|
66
|
+
g.prepareUpdate=n((i,r,o,s)=>{let a=[];for(let p in o){let u=o[p];if(d(u))continue;
|
|
67
|
+
let f=s[u.targetColumn]?.update,S=f?.optional??f?.nullable;if(S===void 0)continue;
|
|
68
|
+
let h=k(r,p);a.push({query:c(i,r,h).build()},{query:m(i,r,h,u,S).build()})}return a},
|
|
69
|
+
"prepareUpdate"),g.prepareRename=n((i,r,o,s)=>{let a=[];for(let p in s){let u=s[p];
|
|
70
|
+
if(d(u))continue;let f=k(r,p),S=k(o,p),h=i.table(o).alter().existing().constraint(
|
|
71
|
+
f).rename(S);a.push({check:N(i,S),query:h.build()})}return a},"prepareRename"),g.
|
|
72
|
+
prepareDelete=n((i,r,o)=>{let s=[];for(let a in o){let p=o[a];if(d(p))continue;let u=k(
|
|
73
|
+
r,a);s.push({query:c(i,r,u).build()})}return s},"prepareDelete");let d=n(i=>{let{
|
|
74
|
+
sourceIndex:r,targetIndex:o}=i;return!r||r===M.Index.Secondary||o===M.Index.Primary},
|
|
74
75
|
"isNotRealRelation"),c=n((i,r,o)=>i.table(r).alter().existing().constraint(o).drop().
|
|
75
|
-
existing(),"getDeleteQuery"),m=n((i,r,o,s,a)=>{let{sourceTable:
|
|
76
|
-
targetColumn:
|
|
77
|
-
o).foreign(
|
|
78
|
-
h},"getCreateQuery")})(
|
|
79
|
-
let s=i[o],
|
|
80
|
-
S).missing()}return{query:r.build()}},"prepareCreate"),
|
|
81
|
-
let o=[];for(let s in r){let{
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
build()})}return
|
|
88
|
-
|
|
89
|
-
|
|
76
|
+
existing(),"getDeleteQuery"),m=n((i,r,o,s,a)=>{let{sourceTable:p,sourceColumn:u,
|
|
77
|
+
targetColumn:f}=s,S=(0,X.getTableName)(p),h=i.table(r).alter().existing().constraint(
|
|
78
|
+
o).foreign(f,S,[u]);return a?h.delete().null():h.delete().cascade(),h.update().cascade(),
|
|
79
|
+
h},"getCreateQuery")})(Z||={});var K=require("@ez4/database");var Q;(d=>(d.prepareCreate=n((c,m,g,i)=>{let r=c.table(m).alter().existing();for(let o in i){
|
|
80
|
+
let s=i[o],p=g[o]?.type===K.Index.Primary,u=!I(s),f=w(s,p),S=P(s,p);r.add(o,f,u,
|
|
81
|
+
S).missing()}return{query:r.build()}},"prepareCreate"),d.prepareUpdate=n((c,m,g,i,r)=>{
|
|
82
|
+
let o=[];for(let s in r){let{create:a,update:p,nested:u,remove:f}=r[s],S=g.properties[s],
|
|
83
|
+
E=i[s]?.type===K.Index.Primary,b=c.table(m).alter().existing().column(s);if(a){let O=a.
|
|
84
|
+
definitions?.default,C=a?.nullable;O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(
|
|
85
|
+
C)}if(p||u){let O=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
|
|
86
|
+
b.type(w(S,E)),O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(C)}if(f){let O=f.
|
|
87
|
+
definitions?.default,C=f?.nullable;O!==void 0&&b.default(null),C!==void 0&&b.optional(
|
|
88
|
+
C)}b.empty||o.push({check:U(c,m,s),query:b.build()})}return o},"prepareUpdate"),
|
|
89
|
+
d.prepareRename=n((c,m,g)=>{let i=[];for(let r in g){let o=g[r],s=c.table(m).alter().
|
|
90
|
+
existing().rename(r,o);i.push({check:U(c,m,r),query:s.build()})}return i},"prepa\
|
|
91
|
+
reRename"),d.prepareDelete=n((c,m,g)=>{let i=c.table(m).alter().existing();for(let r in g)
|
|
92
|
+
i.drop(r).existing();return{query:i.build()}},"prepareDelete")))(Q||={});0&&(module.exports={ColumnQuery,DatabaseQueries,IndexQueries,RelationQuery,TableQuery,
|
|
90
93
|
getTableRepositoryChanges});
|
|
91
94
|
//# sourceMappingURL=library.cjs.map
|
package/dist/library.mjs
CHANGED
|
@@ -1,86 +1,89 @@
|
|
|
1
|
-
var
|
|
2
|
-
isTableMetadata as
|
|
3
|
-
schema)
|
|
4
|
-
Object.keys(e.properties),Object.keys(a.properties)),"canRenameTable"),
|
|
1
|
+
var v=Object.defineProperty;var r=(e,a)=>v(e,"name",{value:a,configurable:!0});import{deepEqual as U,deepCompareObject as F,isAnyObject as E}from"@ez4/utils";import{
|
|
2
|
+
isTableMetadata as _}from"@ez4/pgclient/library";import{isAnySchema as $}from"@ez4/schema";var xe=r((e,a)=>F(e,a,{onRename:r((g,f)=>!E(g)||!E(f)?!1:_(g)&&_(f)?L(g.schema,f.
|
|
3
|
+
schema):$(g)&&$(f)?G(g,f):!1,"onRename")}),"getTableRepositoryChanges"),L=r((e,a)=>U(
|
|
4
|
+
Object.keys(e.properties),Object.keys(a.properties)),"canRenameTable"),G=r((e,a)=>U(
|
|
5
5
|
e,a,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
6
|
-
Column");import{SqlBuilder as
|
|
7
|
-
rawString(a)}).build();return g},"getCheckDatabaseQuery"),
|
|
6
|
+
Column");import{SqlBuilder as H}from"@ez4/pgsql";var M=r((e,a)=>{let[g]=e.select().rawColumn("1").from("pg_database").where({datname:e.
|
|
7
|
+
rawString(a)}).build();return g},"getCheckDatabaseQuery"),R=r((e,a)=>{let[g]=e.select().
|
|
8
8
|
rawColumn("1").from("pg_constraint").where({conname:e.rawString(a)}).build();return g},
|
|
9
|
-
"getCheckConstraintQuery"),
|
|
10
|
-
|
|
11
|
-
a)}).build();return
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
e
|
|
9
|
+
"getCheckConstraintQuery"),D=r((e,a,g)=>{let[f]=e.select().rawColumn("1").where(
|
|
10
|
+
{NOT:{exists:e.select().from(e.rawValue("information_schema.columns")).rawColumn(
|
|
11
|
+
"1").where({column_name:e.rawString(g),table_name:e.rawString(a)})}}).build();return f},
|
|
12
|
+
"getCheckColumnQuery");var J;(g=>(g.prepareCreate=r(f=>{let y=new H;return{check:M(y,f),query:`CREATE D\
|
|
13
|
+
ATABASE "${f}"`}},"prepareCreate"),g.prepareDelete=r(f=>({query:`DROP DATABASE I\
|
|
14
|
+
F EXISTS "${f}" WITH (FORCE)`}),"prepareDelete")))(J||={});import{Index as oe}from"@ez4/database";import{isArraySchema as W,isEnumSchema as X,isObjectSchema as Y,isScalarSchema as Z,
|
|
15
|
+
isStringSchema as Q,isTupleSchema as ee,SchemaType as q}from"@ez4/schema";import{
|
|
16
|
+
isAnyNumber as te}from"@ez4/utils";var O=r(e=>!!(e.nullable||e.optional),"isOptionalColumn"),N=r((e,a)=>{if(Z(e)||Y(
|
|
17
|
+
e)||W(e)||ee(e)){let{definitions:g}=e;switch(typeof g?.default){case"boolean":case"\
|
|
17
18
|
number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":return`\
|
|
18
|
-
'${JSON.stringify(g.default)}'`}}if(
|
|
19
|
-
'${g.default}'`}if(
|
|
20
|
-
return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
21
|
-
umnDefault"),
|
|
22
|
-
Union:case
|
|
23
|
-
text";case
|
|
24
|
-
|
|
25
|
-
rType"),
|
|
26
|
-
date-time":return"timestamptz";default:let a=e.definitions?.maxLength;return
|
|
27
|
-
a)?`varchar(${a})`:"text"}},"getColumnTextType");var
|
|
28
|
-
properties){let n=m.properties[t],s=l[t]?.type===
|
|
29
|
-
n,s);o.column(t,p,
|
|
30
|
-
r((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prepareRename"),
|
|
19
|
+
'${JSON.stringify(g.default)}'`}}if(X(e)){let{definitions:g}=e;if(g?.default)return`\
|
|
20
|
+
'${g.default}'`}if(Q(e)&&a)switch(e.format){case"date-time":case"date":case"time":
|
|
21
|
+
return"now()";case"uuid":return"gen_random_uuid()"}if(O(e))return"null"},"getCol\
|
|
22
|
+
umnDefault"),I=r((e,a)=>{switch(e.type){case q.Array:case q.Object:case q.Reference:case q.
|
|
23
|
+
Union:case q.Tuple:return"jsonb";case q.Boolean:return"boolean";case q.Enum:return"\
|
|
24
|
+
text";case q.Number:return re(e,a);case q.String:return ne(e)}},"getColumnType"),
|
|
25
|
+
re=r((e,a)=>e.format==="integer"?a?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
26
|
+
rType"),ne=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
|
|
27
|
+
date-time":return"timestamptz";default:let a=e.definitions?.maxLength;return te(
|
|
28
|
+
a)?`varchar(${a})`:"text"}},"getColumnTextType");var ie;(f=>(f.prepareCreate=r((y,c,m,l)=>{let o=y.table(c).create().missing();for(let t in m.
|
|
29
|
+
properties){let n=m.properties[t],s=l[t]?.type===oe.Primary,p=!O(n),u=I(n,s),d=N(
|
|
30
|
+
n,s);o.column(t,u,p,d).missing()}return{query:o.build()}},"prepareCreate"),f.prepareRename=
|
|
31
|
+
r((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prepareRename"),f.
|
|
31
32
|
prepareDelete=r((y,c)=>({query:y.table(c).drop().existing().cascade().build()}),
|
|
32
|
-
"prepareDelete")))(
|
|
33
|
-
tUniqueKeyName"),
|
|
34
|
-
e,a)}_fk`,"getRelationName");var
|
|
35
|
-
let{columns:s,type:
|
|
36
|
-
type.");case
|
|
37
|
-
|
|
38
|
-
let
|
|
39
|
-
push({check:
|
|
40
|
-
l),x=c.index(
|
|
33
|
+
"prepareDelete")))(ie||={});import{SchemaType as j}from"@ez4/schema";import{Index as b}from"@ez4/database";import{toSnakeCase as se}from"@ez4/utils";var w=r((e,a)=>`${T(e,a)}_pk`,"getPrimaryKeyName"),B=r((e,a)=>`${T(e,a)}_uk`,"ge\
|
|
34
|
+
tUniqueKeyName"),A=r((e,a)=>`${T(e,a)}_sk`,"getSecondaryKeyName"),P=r((e,a)=>`${T(
|
|
35
|
+
e,a)}_fk`,"getRelationName");var T=r((e,a)=>`${e}_${se(a.replaceAll(":","_"))}`,"getName");var ae;(y=>{y.prepareCreate=r((c,m,l,o,t)=>{let n={constraints:[],indexes:[]};for(let i in o){
|
|
36
|
+
let{columns:s,type:p}=o[i];switch(p){default:throw new Error("Unsupported index \
|
|
37
|
+
type.");case b.Primary:{let u=w(m,i),d=c.table(m).alter().existing().constraint(
|
|
38
|
+
u).primary(s);n.constraints.push({check:R(c,u),query:d.build()});break}case b.Unique:{
|
|
39
|
+
let u=B(m,i),d=c.table(m).alter().existing().constraint(u).unique(s);n.constraints.
|
|
40
|
+
push({check:R(c,u),query:d.build()});break}case b.Secondary:{let u=A(m,i),d=f(s,
|
|
41
|
+
l),x=c.index(u).create(m,s).type(d).missing();t&&x.concurrent(),n.indexes.push({
|
|
41
42
|
query:x.build()});break}}}return n},"prepareCreate"),y.prepareRename=r((c,m,l,o)=>{
|
|
42
43
|
let t={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
|
|
43
|
-
throw new Error("Unsupported index type.");case
|
|
44
|
-
|
|
45
|
-
c,
|
|
46
|
-
existing().constraint(s).rename(
|
|
47
|
-
break}case
|
|
48
|
-
t.indexes.push({query:
|
|
44
|
+
throw new Error("Unsupported index type.");case b.Primary:{let s=w(m,n),p=w(l,n),
|
|
45
|
+
u=c.table(l).alter().existing().constraint(s).rename(p);t.constraints.push({check:R(
|
|
46
|
+
c,p),query:u.build()});break}case b.Unique:{let s=B(m,n),p=B(l,n),u=c.table(l).alter().
|
|
47
|
+
existing().constraint(s).rename(p);t.constraints.push({check:R(c,p),query:u.build()});
|
|
48
|
+
break}case b.Secondary:{let s=A(m,n),p=A(l,n),u=c.index(s).rename(p).existing();
|
|
49
|
+
t.indexes.push({query:u.build()});break}}}return t},"prepareRename"),y.prepareDelete=
|
|
49
50
|
r((c,m,l)=>{let o={constraints:[],indexes:[]};for(let t in l){let{type:n}=l[t];switch(n){default:
|
|
50
|
-
throw new Error("Unsupported index type.");case
|
|
51
|
+
throw new Error("Unsupported index type.");case b.Primary:{let i=w(m,t),s=c.table(
|
|
51
52
|
m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:s.
|
|
52
|
-
build()});break}case
|
|
53
|
-
i).drop().existing();o.constraints.push({query:s.build()});break}case
|
|
54
|
-
let i=
|
|
55
|
-
build()});break}}}return o},"prepareDelete");let
|
|
56
|
-
l]=c;switch(m.properties[l]?.type){case
|
|
57
|
-
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(
|
|
58
|
-
import{Index as
|
|
59
|
-
|
|
60
|
-
o,x),query:m(o,t,x,
|
|
61
|
-
let s=[];for(let
|
|
62
|
-
x=
|
|
63
|
-
t,S).build()},{query:m(o,t,S,
|
|
64
|
-
r((o,t,n,i)=>{let s=[];for(let
|
|
65
|
-
x=
|
|
53
|
+
build()});break}case b.Unique:{let i=B(m,t),s=c.table(m).alter().existing().constraint(
|
|
54
|
+
i).drop().existing();o.constraints.push({query:s.build()});break}case b.Secondary:{
|
|
55
|
+
let i=A(m,t),s=c.index(i).drop().existing().concurrent();o.indexes.push({query:s.
|
|
56
|
+
build()});break}}}return o},"prepareDelete");let f=r((c,m)=>{if(c.length===1){let[
|
|
57
|
+
l]=c;switch(m.properties[l]?.type){case j.Object:case j.Union:case j.Array:case j.
|
|
58
|
+
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(ae||={});import{getTableName as ce}from"@ez4/pgclient/library";import{IsNullishSchema as me}from"@ez4/schema";
|
|
59
|
+
import{Index as K}from"@ez4/database";var ue;(l=>{l.prepareCreate=r((o,t,n,i)=>{let s=[];for(let p in i){let u=i[p];if(y(
|
|
60
|
+
u))continue;let{[u.targetColumn]:d}=n.properties,x=P(t,p),S=!!me(d);s.push({check:R(
|
|
61
|
+
o,x),query:m(o,t,x,u,S).build()})}return s},"prepareCreate"),l.prepareUpdate=r((o,t,n,i)=>{
|
|
62
|
+
let s=[];for(let p in n){let u=n[p];if(y(u))continue;let d=i[u.targetColumn]?.update,
|
|
63
|
+
x=d?.optional??d?.nullable;if(x===void 0)continue;let S=P(t,p);s.push({query:c(o,
|
|
64
|
+
t,S).build()},{query:m(o,t,S,u,x).build()})}return s},"prepareUpdate"),l.prepareRename=
|
|
65
|
+
r((o,t,n,i)=>{let s=[];for(let p in i){let u=i[p];if(y(u))continue;let d=P(t,p),
|
|
66
|
+
x=P(n,p),S=o.table(n).alter().existing().constraint(d).rename(x);s.push({check:R(
|
|
66
67
|
o,x),query:S.build()})}return s},"prepareRename"),l.prepareDelete=r((o,t,n)=>{let i=[];
|
|
67
|
-
for(let s in n){let
|
|
68
|
+
for(let s in n){let p=n[s];if(y(p))continue;let u=P(t,s);i.push({query:c(o,t,u).
|
|
68
69
|
build()})}return i},"prepareDelete");let y=r(o=>{let{sourceIndex:t,targetIndex:n}=o;
|
|
69
|
-
return!t||t===
|
|
70
|
+
return!t||t===K.Secondary||n===K.Primary},"isNotRealRelation"),c=r((o,t,n)=>o.table(
|
|
70
71
|
t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=r((o,t,n,i,s)=>{
|
|
71
|
-
let{sourceTable:
|
|
72
|
-
existing().constraint(n).foreign(
|
|
73
|
-
cascade(),S.update().cascade(),S},"getCreateQuery")})(
|
|
74
|
-
let i=o[n],
|
|
72
|
+
let{sourceTable:p,sourceColumn:u,targetColumn:d}=i,x=ce(p),S=o.table(t).alter().
|
|
73
|
+
existing().constraint(n).foreign(d,x,[u]);return s?S.delete().null():S.delete().
|
|
74
|
+
cascade(),S.update().cascade(),S},"getCreateQuery")})(ue||={});import{Index as V}from"@ez4/database";var pe;(y=>(y.prepareCreate=r((c,m,l,o)=>{let t=c.table(m).alter().existing();for(let n in o){
|
|
75
|
+
let i=o[n],p=l[n]?.type===V.Primary,u=!O(i),d=I(i,p),x=N(i,p);t.add(n,d,u,x).missing()}
|
|
75
76
|
return{query:t.build()}},"prepareCreate"),y.prepareUpdate=r((c,m,l,o,t)=>{let n=[];
|
|
76
|
-
for(let i in t){let{
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
build()})}return
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
77
|
+
for(let i in t){let{create:s,update:p,nested:u,remove:d}=t[i],x=l.properties[i],
|
|
78
|
+
z=o[i]?.type===V.Primary,h=c.table(m).alter().existing().column(i);if(s){let k=s.
|
|
79
|
+
definitions?.default,C=s?.nullable;k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(
|
|
80
|
+
C)}if(p||u){let k=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
|
|
81
|
+
h.type(I(x,z)),k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(C)}if(d){let k=d.
|
|
82
|
+
definitions?.default,C=d?.nullable;k!==void 0&&h.default(null),C!==void 0&&h.optional(
|
|
83
|
+
C)}h.empty||n.push({check:D(c,m,i),query:h.build()})}return n},"prepareUpdate"),
|
|
84
|
+
y.prepareRename=r((c,m,l)=>{let o=[];for(let t in l){let n=l[t],i=c.table(m).alter().
|
|
85
|
+
existing().rename(t,n);o.push({check:D(c,m,t),query:i.build()})}return o},"prepa\
|
|
86
|
+
reRename"),y.prepareDelete=r((c,m,l)=>{let o=c.table(m).alter().existing();for(let t in l)
|
|
87
|
+
o.drop(t).existing();return{query:o.build()}},"prepareDelete")))(pe||={});export{pe as ColumnQuery,J as DatabaseQueries,ae as IndexQueries,ue as RelationQuery,
|
|
88
|
+
ie as TableQuery,xe as getTableRepositoryChanges};
|
|
86
89
|
//# sourceMappingURL=library.mjs.map
|
package/dist/main.cjs
CHANGED
|
@@ -1,131 +1,134 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
typeof s=="object"||typeof s=="function")for(let m of
|
|
3
|
-
|
|
4
|
-
module.exports=
|
|
1
|
+
"use strict";var V=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ie=Object.getOwnPropertyNames;var ae=Object.prototype.hasOwnProperty;var p=(e,s)=>V(e,"name",{value:s,configurable:!0});var ce=(e,s)=>{for(var d in s)V(e,d,{get:s[d],enumerable:!0})},pe=(e,s,d,g)=>{if(s&&
|
|
2
|
+
typeof s=="object"||typeof s=="function")for(let m of ie(s))!ae.call(e,m)&&m!==d&&
|
|
3
|
+
V(e,m,{get:()=>s[m],enumerable:!(g=se(s,m))||g.enumerable});return e};var me=e=>pe(V({},"__esModule",{value:!0}),e);var ye={};ce(ye,{getCreateQueries:()=>re,getDeleteQueries:()=>oe,getUpdateQueries:()=>fe});
|
|
4
|
+
module.exports=me(ye);var L=require("@ez4/pgsql");var Y=require("@ez4/database");var x=require("@ez4/schema"),X=require("@ez4/utils");var U=p(e=>!!(e.nullable||e.optional),"isOptionalColumn"),j=p((e,s)=>{if((0,x.isScalarSchema)(
|
|
5
5
|
e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
|
|
6
|
-
definitions:
|
|
7
|
-
default}`;case"string":return`'${
|
|
8
|
-
|
|
9
|
-
'${
|
|
10
|
-
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
11
|
-
null"},"getColumnDefault"),
|
|
6
|
+
definitions:d}=e;switch(typeof d?.default){case"boolean":case"number":return`${d.
|
|
7
|
+
default}`;case"string":return`'${d.default}'`;case"object":return`'${JSON.stringify(
|
|
8
|
+
d.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:d}=e;if(d?.default)return`\
|
|
9
|
+
'${d.default}'`}if((0,x.isStringSchema)(e)&&s)switch(e.format){case"date-time":case"\
|
|
10
|
+
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(U(e))return"\
|
|
11
|
+
null"},"getColumnDefault"),M=p((e,s)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
|
|
12
12
|
Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
|
|
13
13
|
return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
|
|
14
|
-
text";case x.SchemaType.Number:return
|
|
15
|
-
e)}},"getColumnType"),
|
|
16
|
-
ecimal","getColumNumberType"),
|
|
14
|
+
text";case x.SchemaType.Number:return ue(e,s);case x.SchemaType.String:return le(
|
|
15
|
+
e)}},"getColumnType"),ue=p((e,s)=>e.format==="integer"?s?"bigserial":"bigint":"d\
|
|
16
|
+
ecimal","getColumNumberType"),le=p(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
17
17
|
date":return e.format;case"date-time":return"timestamptz";default:let s=e.definitions?.
|
|
18
|
-
maxLength;return(0,
|
|
19
|
-
properties){let
|
|
20
|
-
|
|
21
|
-
prepareRename=p((m,
|
|
22
|
-
areRename"),
|
|
23
|
-
build()}),"prepareDelete")))(
|
|
24
|
-
rawString(s)}).build();return
|
|
25
|
-
select().rawColumn("1").
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
type,
|
|
32
|
-
k
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
let
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
let
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
t,
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
r
|
|
75
|
-
|
|
18
|
+
maxLength;return(0,X.isAnyNumber)(s)?`varchar(${s})`:"text"}},"getColumnTextType");var _;(g=>(g.prepareCreate=p((m,r,u,f)=>{let o=m.table(r).create().missing();for(let t in u.
|
|
19
|
+
properties){let n=u.properties[t],c=f[t]?.type===Y.Index.Primary,l=!U(n),i=M(n,c),
|
|
20
|
+
y=j(n,c);o.column(t,i,l,y).missing()}return{query:o.build()}},"prepareCreate"),g.
|
|
21
|
+
prepareRename=p((m,r,u)=>({query:m.table(r).rename(u).existing().build()}),"prep\
|
|
22
|
+
areRename"),g.prepareDelete=p((m,r)=>({query:m.table(r).drop().existing().cascade().
|
|
23
|
+
build()}),"prepareDelete")))(_||={});var J=require("@ez4/database");var b=p((e,s)=>{let[d]=e.select().rawColumn("1").from("pg_constraint").where({conname:e.
|
|
24
|
+
rawString(s)}).build();return d},"getCheckConstraintQuery"),G=p((e,s,d)=>{let[g]=e.
|
|
25
|
+
select().rawColumn("1").where({NOT:{exists:e.select().from(e.rawValue("informati\
|
|
26
|
+
on_schema.columns")).rawColumn("1").where({column_name:e.rawString(d),table_name:e.
|
|
27
|
+
rawString(s)})}}).build();return g},"getCheckColumnQuery");var I;(m=>(m.prepareCreate=p((r,u,f,o)=>{let t=r.table(u).alter().existing();for(let n in o){
|
|
28
|
+
let a=o[n],l=f[n]?.type===J.Index.Primary,i=!U(a),y=M(a,l),h=j(a,l);t.add(n,y,i,
|
|
29
|
+
h).missing()}return{query:t.build()}},"prepareCreate"),m.prepareUpdate=p((r,u,f,o,t)=>{
|
|
30
|
+
let n=[];for(let a in t){let{create:c,update:l,nested:i,remove:y}=t[a],h=f.properties[a],
|
|
31
|
+
R=o[a]?.type===J.Index.Primary,q=r.table(u).alter().existing().column(a);if(c){let O=c.
|
|
32
|
+
definitions?.default,k=c?.nullable;O!==void 0&&q.default(j(h,R)),k!==void 0&&q.optional(
|
|
33
|
+
k)}if(l||i){let O=i?.definitions?.update?.default,k=l?.nullable;l?.type!==void 0&&
|
|
34
|
+
q.type(M(h,R)),O!==void 0&&q.default(j(h,R)),k!==void 0&&q.optional(k)}if(y){let O=y.
|
|
35
|
+
definitions?.default,k=y?.nullable;O!==void 0&&q.default(null),k!==void 0&&q.optional(
|
|
36
|
+
k)}q.empty||n.push({check:G(r,u,a),query:q.build()})}return n},"prepareUpdate"),
|
|
37
|
+
m.prepareRename=p((r,u,f)=>{let o=[];for(let t in f){let n=f[t],a=r.table(u).alter().
|
|
38
|
+
existing().rename(t,n);o.push({check:G(r,u,t),query:a.build()})}return o},"prepa\
|
|
39
|
+
reRename"),m.prepareDelete=p((r,u,f)=>{let o=r.table(u).alter().existing();for(let t in f)
|
|
40
|
+
o.drop(t).existing();return{query:o.build()}},"prepareDelete")))(I||={});var P=require("@ez4/schema");var Z=require("@ez4/utils");var v=p((e,s)=>`${E(e,s)}_pk`,"getPrimaryKeyName"),Q=p((e,s)=>`${E(e,s)}_uk`,"ge\
|
|
41
|
+
tUniqueKeyName"),$=p((e,s)=>`${E(e,s)}_sk`,"getSecondaryKeyName"),A=p((e,s)=>`${E(
|
|
42
|
+
e,s)}_fk`,"getRelationName"),C=p((e,s)=>`${E(e,s)}_ck`,"getConstraintName"),E=p(
|
|
43
|
+
(e,s)=>`${e}_${(0,Z.toSnakeCase)(s.replaceAll(":","_"))}`,"getName");var B;(f=>{f.prepareCreate=p((o,t,n)=>{let a=[];for(let c in n){let l=n[c];if(!(0,P.isEnumSchema)(
|
|
44
|
+
l))continue;let i=C(t,c);a.push({check:b(o,i),query:u(o,t,i,c,l.options).build()})}
|
|
45
|
+
return a},"prepareCreate"),f.prepareUpdate=p((o,t,n,a,c)=>{let l=[];for(let i in c){
|
|
46
|
+
let{update:y,create:h,remove:S}=c[i];if(S){let R=a.properties[i];if((0,P.isEnumSchema)(
|
|
47
|
+
R)){let q=C(t,i);l.push({query:r(o,t,q).build()})}}if(y){let R=a.properties[i],q=n.
|
|
48
|
+
properties[i];if((0,P.isEnumSchema)(R)&&(0,P.isEnumSchema)(q)){let O=C(t,i);l.push(
|
|
49
|
+
{query:r(o,t,O).build()},{query:u(o,t,O,i,q.options).build()})}}if(h){let R=n.properties[i];
|
|
50
|
+
if((0,P.isEnumSchema)(R)){let q=C(t,i);l.push({check:b(o,q),query:u(o,t,q,i,R.options).
|
|
51
|
+
build()})}}}return l},"prepareUpdate"),f.prepareRenameTable=p((o,t,n,a)=>{let c=[];
|
|
52
|
+
for(let l in a){let i=a[l];if(!(0,P.isEnumSchema)(i))continue;let y=C(t,l),h=C(n,
|
|
53
|
+
l),S=o.table(n).alter().existing().constraint(y).rename(h);c.push({check:b(o,h),
|
|
54
|
+
query:S.build()})}return c},"prepareRenameTable"),f.prepareRenameColumns=p((o,t,n,a)=>{
|
|
55
|
+
let c=[];for(let l in a){let i=a[l],y=n[i];if(!(0,P.isEnumSchema)(y))continue;let h=C(
|
|
56
|
+
t,l),S=C(t,i),R=o.table(t).alter().existing().constraint(h).rename(S);c.push({check:b(
|
|
57
|
+
o,S),query:R.build()})}return c},"prepareRenameColumns"),f.prepareDelete=p((o,t,n)=>{
|
|
58
|
+
let a=[];for(let c in n){let l=n[c];if(!(0,P.isEnumSchema)(l))continue;let i=C(t,
|
|
59
|
+
c);a.push({query:r(o,t,i).build()})}return a},"prepareDelete");let r=p((o,t,n)=>o.
|
|
60
|
+
table(t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),u=p(
|
|
61
|
+
(o,t,n,a,c)=>{let l=c.map(({value:i})=>`${i}`);return o.table(t).alter().existing().
|
|
62
|
+
constraint(n).check({[a]:{isIn:l}})},"getCreateQuery")})(B||={});var ee=require("@ez4/pgclient/library"),te=require("@ez4/schema"),F=require("@ez4/database");var T;(f=>{f.prepareCreate=p((o,t,n,a)=>{let c=[];for(let l in a){let i=a[l];if(m(
|
|
63
|
+
i))continue;let{[i.targetColumn]:y}=n.properties,h=A(t,l),S=!!(0,te.IsNullishSchema)(
|
|
64
|
+
y);c.push({check:b(o,h),query:u(o,t,h,i,S).build()})}return c},"prepareCreate"),
|
|
65
|
+
f.prepareUpdate=p((o,t,n,a)=>{let c=[];for(let l in n){let i=n[l];if(m(i))continue;
|
|
66
|
+
let y=a[i.targetColumn]?.update,h=y?.optional??y?.nullable;if(h===void 0)continue;
|
|
67
|
+
let S=A(t,l);c.push({query:r(o,t,S).build()},{query:u(o,t,S,i,h).build()})}return c},
|
|
68
|
+
"prepareUpdate"),f.prepareRename=p((o,t,n,a)=>{let c=[];for(let l in a){let i=a[l];
|
|
69
|
+
if(m(i))continue;let y=A(t,l),h=A(n,l),S=o.table(n).alter().existing().constraint(
|
|
70
|
+
y).rename(h);c.push({check:b(o,h),query:S.build()})}return c},"prepareRename"),f.
|
|
71
|
+
prepareDelete=p((o,t,n)=>{let a=[];for(let c in n){let l=n[c];if(m(l))continue;let i=A(
|
|
72
|
+
t,c);a.push({query:r(o,t,i).build()})}return a},"prepareDelete");let m=p(o=>{let{
|
|
73
|
+
sourceIndex:t,targetIndex:n}=o;return!t||t===F.Index.Secondary||n===F.Index.Primary},
|
|
74
|
+
"isNotRealRelation"),r=p((o,t,n)=>o.table(t).alter().existing().constraint(n).drop().
|
|
75
|
+
existing(),"getDeleteQuery"),u=p((o,t,n,a,c)=>{let{sourceTable:l,sourceColumn:i,
|
|
76
|
+
targetColumn:y}=a,h=(0,ee.getTableName)(l),S=o.table(t).alter().existing().constraint(
|
|
77
|
+
n).foreign(y,h,[i]);return c?S.delete().null():S.delete().cascade(),S.update().cascade(),
|
|
78
|
+
S},"getCreateQuery")})(T||={});var K=require("@ez4/schema"),N=require("@ez4/database");var z;(m=>{m.prepareCreate=p((r,u,f,o,t)=>{let n={constraints:[],indexes:[]};for(let a in o){
|
|
76
79
|
let{columns:c,type:l}=o[a];switch(l){default:throw new Error("Unsupported index \
|
|
77
|
-
type.");case
|
|
78
|
-
i).primary(c);
|
|
79
|
-
Unique:{let i=Q(u,a),
|
|
80
|
-
push({check:
|
|
81
|
-
|
|
82
|
-
push({query:h.build()});break}}}return
|
|
83
|
-
let t={constraints:[],indexes:[]};for(let
|
|
84
|
-
throw new Error("Unsupported index type.");case
|
|
85
|
-
|
|
86
|
-
{check:
|
|
87
|
-
i=
|
|
88
|
-
|
|
80
|
+
type.");case N.Index.Primary:{let i=v(u,a),y=r.table(u).alter().existing().constraint(
|
|
81
|
+
i).primary(c);n.constraints.push({check:b(r,i),query:y.build()});break}case N.Index.
|
|
82
|
+
Unique:{let i=Q(u,a),y=r.table(u).alter().existing().constraint(i).unique(c);n.constraints.
|
|
83
|
+
push({check:b(r,i),query:y.build()});break}case N.Index.Secondary:{let i=$(u,a),
|
|
84
|
+
y=g(c,f),h=r.index(i).create(u,c).type(y).missing();t&&h.concurrent(),n.indexes.
|
|
85
|
+
push({query:h.build()});break}}}return n},"prepareCreate"),m.prepareRename=p((r,u,f,o)=>{
|
|
86
|
+
let t={constraints:[],indexes:[]};for(let n in o){let{type:a}=o[n];switch(a){default:
|
|
87
|
+
throw new Error("Unsupported index type.");case N.Index.Primary:{let c=v(u,n),l=v(
|
|
88
|
+
f,n),i=r.table(f).alter().existing().constraint(c).rename(l);t.constraints.push(
|
|
89
|
+
{check:b(r,l),query:i.build()});break}case N.Index.Unique:{let c=Q(u,n),l=Q(f,n),
|
|
90
|
+
i=r.table(f).alter().existing().constraint(c).rename(l);t.constraints.push({check:b(
|
|
91
|
+
r,l),query:i.build()});break}case N.Index.Secondary:{let c=$(u,n),l=$(f,n),i=r.index(
|
|
89
92
|
c).rename(l).existing();t.indexes.push({query:i.build()});break}}}return t},"pre\
|
|
90
|
-
pareRename"),m.prepareDelete=p((
|
|
91
|
-
let{type:
|
|
92
|
-
Primary:{let a=
|
|
93
|
-
o.constraints.push({query:c.build()});break}case
|
|
93
|
+
pareRename"),m.prepareDelete=p((r,u,f)=>{let o={constraints:[],indexes:[]};for(let t in f){
|
|
94
|
+
let{type:n}=f[t];switch(n){default:throw new Error("Unsupported index type.");case N.Index.
|
|
95
|
+
Primary:{let a=v(u,t),c=r.table(u).alter().existing().constraint(a).drop().existing();
|
|
96
|
+
o.constraints.push({query:c.build()});break}case N.Index.Unique:{let a=Q(u,t),c=r.
|
|
94
97
|
table(u).alter().existing().constraint(a).drop().existing();o.constraints.push({
|
|
95
|
-
query:c.build()});break}case
|
|
98
|
+
query:c.build()});break}case N.Index.Secondary:{let a=$(u,t),c=r.index(a).drop().
|
|
96
99
|
existing().concurrent();o.indexes.push({query:c.build()});break}}}return o},"pre\
|
|
97
|
-
pareDelete");let
|
|
98
|
-
Object:case
|
|
99
|
-
GIN"}}return"BTREE"},"getIndexType")})(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
ename")}),"getTableRepositoryChanges"),
|
|
103
|
-
properties),Object.keys(s.properties)),"canRenameTable"),ge=p((e,s)=>(0,
|
|
100
|
+
pareDelete");let g=p((r,u)=>{if(r.length===1){let[f]=r;switch(u.properties[f]?.type){case K.SchemaType.
|
|
101
|
+
Object:case K.SchemaType.Union:case K.SchemaType.Array:case K.SchemaType.Tuple:return"\
|
|
102
|
+
GIN"}}return"BTREE"},"getIndexType")})(z||={});var w=require("@ez4/utils"),H=require("@ez4/pgclient/library"),W=require("@ez4/schema");var ne=p((e,s)=>(0,w.deepCompareObject)(e,s,{onRename:p((d,g)=>!(0,w.isAnyObject)(
|
|
103
|
+
d)||!(0,w.isAnyObject)(g)?!1:(0,H.isTableMetadata)(d)&&(0,H.isTableMetadata)(g)?
|
|
104
|
+
de(d.schema,g.schema):(0,W.isAnySchema)(d)&&(0,W.isAnySchema)(g)?ge(d,g):!1,"onR\
|
|
105
|
+
ename")}),"getTableRepositoryChanges"),de=p((e,s)=>(0,w.deepEqual)(Object.keys(e.
|
|
106
|
+
properties),Object.keys(s.properties)),"canRenameTable"),ge=p((e,s)=>(0,w.deepEqual)(
|
|
104
107
|
e,s,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),"canRename\
|
|
105
|
-
Column");var re=p(e=>{let s=new L.SqlBuilder,
|
|
106
|
-
for(let
|
|
107
|
-
prepareCreate(s,m,
|
|
108
|
-
|
|
109
|
-
"getCreateQueries"),
|
|
110
|
-
relations:[],indexes:[]};if(
|
|
111
|
-
rename){let u=
|
|
112
|
-
push(
|
|
113
|
-
properties)),m.relations.push(...
|
|
114
|
-
|
|
115
|
-
let{schema:
|
|
116
|
-
relations,l=s[
|
|
117
|
-
|
|
118
|
-
(m.tables.push(...I.prepareUpdate(
|
|
119
|
-
|
|
120
|
-
(m.tables.push(...I.prepareRename(
|
|
121
|
-
|
|
122
|
-
m.constraints.push(...
|
|
123
|
-
|
|
124
|
-
push(...
|
|
125
|
-
|
|
126
|
-
let s=new L.SqlBuilder,
|
|
127
|
-
let{name:m}=e[
|
|
128
|
-
|
|
108
|
+
Column");var re=p(e=>{let s=new L.SqlBuilder,d={tables:[],constraints:[],relations:[],indexes:[]};
|
|
109
|
+
for(let g in e){let{name:m,schema:r,indexes:u,relations:f}=e[g];d.tables.push(_.
|
|
110
|
+
prepareCreate(s,m,r,u)),d.constraints.push(...B.prepareCreate(s,m,r.properties)),
|
|
111
|
+
d.relations.push(...T.prepareCreate(s,m,r,f)),D(d,z.prepareCreate(s,m,r,u,!1))}return d},
|
|
112
|
+
"getCreateQueries"),fe=p((e,s)=>{let d=ne(e,s),g=new L.SqlBuilder,m={tables:[],constraints:[],
|
|
113
|
+
relations:[],indexes:[]};if(d.create&&D(m,re(d.create)),d.rename)for(let r in d.
|
|
114
|
+
rename){let u=d.rename[r],f=e[u].indexes,o=e[u].relations,t=e[u].schema;m.tables.
|
|
115
|
+
push(_.prepareRename(g,r,u)),m.constraints.push(...B.prepareRenameTable(g,r,u,t.
|
|
116
|
+
properties)),m.relations.push(...T.prepareRename(g,r,u,o)),D(m,z.prepareRename(g,
|
|
117
|
+
r,u,f))}if(d.nested)for(let r in d.nested){let{nested:u}=d.nested[r];if(!u)continue;
|
|
118
|
+
let{schema:f,relations:o,indexes:t}=u,n=f?.nested?.properties,a=e[r].indexes,c=e[r].
|
|
119
|
+
relations,l=s[r].schema,i=e[r].schema;n?.create&&(m.tables.push(I.prepareCreate(
|
|
120
|
+
g,r,a,n.create)),m.constraints.push(...B.prepareCreate(g,r,n.create))),n?.nested&&
|
|
121
|
+
(m.tables.push(...I.prepareUpdate(g,r,i,a,n.nested)),m.constraints.push(...B.prepareUpdate(
|
|
122
|
+
g,r,i,l,n.nested)),m.relations.push(...T.prepareUpdate(g,r,c,n.nested))),n?.rename&&
|
|
123
|
+
(m.tables.push(...I.prepareRename(g,r,n.rename)),m.constraints.push(...B.prepareRenameColumns(
|
|
124
|
+
g,r,i.properties,n.rename))),n?.remove&&(m.tables.push(I.prepareDelete(g,r,n.remove)),
|
|
125
|
+
m.constraints.push(...B.prepareDelete(g,r,n.remove))),t?.create&&D(m,z.prepareCreate(
|
|
126
|
+
g,r,i,t.create,!0)),t?.remove&&D(m,z.prepareDelete(g,r,t.remove)),o?.create&&m.relations.
|
|
127
|
+
push(...T.prepareCreate(g,r,i,o.create)),o?.remove&&m.relations.push(...T.prepareDelete(
|
|
128
|
+
g,r,o.remove))}return d.remove&&D(m,oe(d.remove)),m},"getUpdateQueries"),oe=p(e=>{
|
|
129
|
+
let s=new L.SqlBuilder,d={tables:[],constraints:[],relations:[],indexes:[]};for(let g in e){
|
|
130
|
+
let{name:m}=e[g];d.tables.push(_.prepareDelete(s,m))}return d},"getDeleteQueries"),
|
|
131
|
+
D=p((e,s)=>{s.indexes&&e.indexes.push(...s.indexes),s.constraints&&e.constraints.
|
|
129
132
|
push(...s.constraints),s.relations&&e.relations.push(...s.relations),s.tables&&e.
|
|
130
133
|
tables.push(...s.tables)},"combineMigrationQueries");0&&(module.exports={getCreateQueries,getDeleteQueries,getUpdateQueries});
|
|
131
134
|
//# sourceMappingURL=main.cjs.map
|
package/dist/main.mjs
CHANGED
|
@@ -1,125 +1,128 @@
|
|
|
1
|
-
var
|
|
2
|
-
isStringSchema as re,isTupleSchema as
|
|
3
|
-
isAnyNumber as
|
|
4
|
-
|
|
5
|
-
number":return`${
|
|
6
|
-
'${JSON.stringify(
|
|
7
|
-
'${
|
|
8
|
-
e":return"now()";case"uuid":return"gen_random_uuid()"}if(
|
|
9
|
-
ColumnDefault"),
|
|
1
|
+
var Y=Object.defineProperty;var p=(t,c)=>Y(t,"name",{value:c,configurable:!0});import{SqlBuilder as V}from"@ez4/pgsql";import{Index as ce}from"@ez4/database";import{isArraySchema as Z,isEnumSchema as ee,isObjectSchema as te,isScalarSchema as ne,
|
|
2
|
+
isStringSchema as re,isTupleSchema as oe,SchemaType as C}from"@ez4/schema";import{
|
|
3
|
+
isAnyNumber as se}from"@ez4/utils";var D=p(t=>!!(t.nullable||t.optional),"isOptionalColumn"),T=p((t,c)=>{if(ne(t)||
|
|
4
|
+
te(t)||Z(t)||oe(t)){let{definitions:d}=t;switch(typeof d?.default){case"boolean":case"\
|
|
5
|
+
number":return`${d.default}`;case"string":return`'${d.default}'`;case"object":return`\
|
|
6
|
+
'${JSON.stringify(d.default)}'`}}if(ee(t)){let{definitions:d}=t;if(d?.default)return`\
|
|
7
|
+
'${d.default}'`}if(re(t)&&c)switch(t.format){case"date-time":case"date":case"tim\
|
|
8
|
+
e":return"now()";case"uuid":return"gen_random_uuid()"}if(D(t))return"null"},"get\
|
|
9
|
+
ColumnDefault"),U=p((t,c)=>{switch(t.type){case C.Array:case C.Object:case C.Reference:case C.
|
|
10
10
|
Union:case C.Tuple:return"jsonb";case C.Boolean:return"boolean";case C.Enum:return"\
|
|
11
|
-
text";case C.Number:return
|
|
12
|
-
|
|
13
|
-
rType"),
|
|
14
|
-
date-time":return"timestamptz";default:let c=
|
|
15
|
-
c)?`varchar(${c})`:"text"}},"getColumnTextType");var
|
|
16
|
-
properties){let
|
|
17
|
-
|
|
18
|
-
p((l,
|
|
19
|
-
prepareDelete=p((l,
|
|
20
|
-
"prepareDelete")))(
|
|
21
|
-
rawString(c)}).build();return
|
|
22
|
-
select().rawColumn("1").
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
m).alter().existing().column(i);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
e,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
query:
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
o,
|
|
48
|
-
(o,e,
|
|
49
|
-
|
|
50
|
-
o,
|
|
51
|
-
let
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
s)
|
|
58
|
-
|
|
59
|
-
let a=[];for(let u in
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
h=
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
let{
|
|
70
|
-
|
|
71
|
-
|
|
11
|
+
text";case C.Number:return ie(t,c);case C.String:return ae(t)}},"getColumnType"),
|
|
12
|
+
ie=p((t,c)=>t.format==="integer"?c?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
13
|
+
rType"),ae=p(t=>{switch(t.format){case"uuid":case"time":case"date":return t.format;case"\
|
|
14
|
+
date-time":return"timestamptz";default:let c=t.definitions?.maxLength;return se(
|
|
15
|
+
c)?`varchar(${c})`:"text"}},"getColumnTextType");var M;(f=>(f.prepareCreate=p((l,r,m,g)=>{let o=l.table(r).create().missing();for(let e in m.
|
|
16
|
+
properties){let n=m.properties[e],a=g[e]?.type===ce.Primary,u=!D(n),s=U(n,a),y=T(
|
|
17
|
+
n,a);o.column(e,s,u,y).missing()}return{query:o.build()}},"prepareCreate"),f.prepareRename=
|
|
18
|
+
p((l,r,m)=>({query:l.table(r).rename(m).existing().build()}),"prepareRename"),f.
|
|
19
|
+
prepareDelete=p((l,r)=>({query:l.table(r).drop().existing().cascade().build()}),
|
|
20
|
+
"prepareDelete")))(M||={});import{Index as L}from"@ez4/database";var q=p((t,c)=>{let[d]=t.select().rawColumn("1").from("pg_constraint").where({conname:t.
|
|
21
|
+
rawString(c)}).build();return d},"getCheckConstraintQuery"),K=p((t,c,d)=>{let[f]=t.
|
|
22
|
+
select().rawColumn("1").where({NOT:{exists:t.select().from(t.rawValue("informati\
|
|
23
|
+
on_schema.columns")).rawColumn("1").where({column_name:t.rawString(d),table_name:t.
|
|
24
|
+
rawString(c)})}}).build();return f},"getCheckColumnQuery");var j;(l=>(l.prepareCreate=p((r,m,g,o)=>{let e=r.table(m).alter().existing();for(let n in o){
|
|
25
|
+
let i=o[n],u=g[n]?.type===L.Primary,s=!D(i),y=U(i,u),h=T(i,u);e.add(n,y,s,h).missing()}
|
|
26
|
+
return{query:e.build()}},"prepareCreate"),l.prepareUpdate=p((r,m,g,o,e)=>{let n=[];
|
|
27
|
+
for(let i in e){let{create:a,update:u,nested:s,remove:y}=e[i],h=g.properties[i],
|
|
28
|
+
b=o[i]?.type===L.Primary,S=r.table(m).alter().existing().column(i);if(a){let P=a.
|
|
29
|
+
definitions?.default,O=a?.nullable;P!==void 0&&S.default(T(h,b)),O!==void 0&&S.optional(
|
|
30
|
+
O)}if(u||s){let P=s?.definitions?.update?.default,O=u?.nullable;u?.type!==void 0&&
|
|
31
|
+
S.type(U(h,b)),P!==void 0&&S.default(T(h,b)),O!==void 0&&S.optional(O)}if(y){let P=y.
|
|
32
|
+
definitions?.default,O=y?.nullable;P!==void 0&&S.default(null),O!==void 0&&S.optional(
|
|
33
|
+
O)}S.empty||n.push({check:K(r,m,i),query:S.build()})}return n},"prepareUpdate"),
|
|
34
|
+
l.prepareRename=p((r,m,g)=>{let o=[];for(let e in g){let n=g[e],i=r.table(m).alter().
|
|
35
|
+
existing().rename(e,n);o.push({check:K(r,m,e),query:i.build()})}return o},"prepa\
|
|
36
|
+
reRename"),l.prepareDelete=p((r,m,g)=>{let o=r.table(m).alter().existing();for(let e in g)
|
|
37
|
+
o.drop(e).existing();return{query:o.build()}},"prepareDelete")))(j||={});import{isEnumSchema as k}from"@ez4/schema";import{toSnakeCase as pe}from"@ez4/utils";var _=p((t,c)=>`${$(t,c)}_pk`,"getPrimaryKeyName"),v=p((t,c)=>`${$(t,c)}_uk`,"ge\
|
|
38
|
+
tUniqueKeyName"),Q=p((t,c)=>`${$(t,c)}_sk`,"getSecondaryKeyName"),I=p((t,c)=>`${$(
|
|
39
|
+
t,c)}_fk`,"getRelationName"),R=p((t,c)=>`${$(t,c)}_ck`,"getConstraintName"),$=p(
|
|
40
|
+
(t,c)=>`${t}_${pe(c.replaceAll(":","_"))}`,"getName");var B;(g=>{g.prepareCreate=p((o,e,n)=>{let i=[];for(let a in n){let u=n[a];if(!k(
|
|
41
|
+
u))continue;let s=R(e,a);i.push({check:q(o,s),query:m(o,e,s,a,u.options).build()})}
|
|
42
|
+
return i},"prepareCreate"),g.prepareUpdate=p((o,e,n,i,a)=>{let u=[];for(let s in a){
|
|
43
|
+
let{update:y,create:h,remove:x}=a[s];if(x){let b=i.properties[s];if(k(b)){let S=R(
|
|
44
|
+
e,s);u.push({query:r(o,e,S).build()})}}if(y){let b=i.properties[s],S=n.properties[s];
|
|
45
|
+
if(k(b)&&k(S)){let P=R(e,s);u.push({query:r(o,e,P).build()},{query:m(o,e,P,s,S.options).
|
|
46
|
+
build()})}}if(h){let b=n.properties[s];if(k(b)){let S=R(e,s);u.push({check:q(o,S),
|
|
47
|
+
query:m(o,e,S,s,b.options).build()})}}}return u},"prepareUpdate"),g.prepareRenameTable=
|
|
48
|
+
p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(!k(s))continue;let y=R(e,u),
|
|
49
|
+
h=R(n,u),x=o.table(n).alter().existing().constraint(y).rename(h);a.push({check:q(
|
|
50
|
+
o,h),query:x.build()})}return a},"prepareRenameTable"),g.prepareRenameColumns=p(
|
|
51
|
+
(o,e,n,i)=>{let a=[];for(let u in i){let s=i[u],y=n[s];if(!k(y))continue;let h=R(
|
|
52
|
+
e,u),x=R(e,s),b=o.table(e).alter().existing().constraint(h).rename(x);a.push({check:q(
|
|
53
|
+
o,x),query:b.build()})}return a},"prepareRenameColumns"),g.prepareDelete=p((o,e,n)=>{
|
|
54
|
+
let i=[];for(let a in n){let u=n[a];if(!k(u))continue;let s=R(e,a);i.push({query:r(
|
|
55
|
+
o,e,s).build()})}return i},"prepareDelete");let r=p((o,e,n)=>o.table(e).alter().
|
|
56
|
+
existing().constraint(n).drop().existing(),"getDeleteQuery"),m=p((o,e,n,i,a)=>{let u=a.
|
|
57
|
+
map(({value:s})=>`${s}`);return o.table(e).alter().existing().constraint(n).check(
|
|
58
|
+
{[i]:{isIn:u}})},"getCreateQuery")})(B||={});import{getTableName as me}from"@ez4/pgclient/library";import{IsNullishSchema as ue}from"@ez4/schema";
|
|
59
|
+
import{Index as G}from"@ez4/database";var w;(g=>{g.prepareCreate=p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(l(
|
|
60
|
+
s))continue;let{[s.targetColumn]:y}=n.properties,h=I(e,u),x=!!ue(y);a.push({check:q(
|
|
61
|
+
o,h),query:m(o,e,h,s,x).build()})}return a},"prepareCreate"),g.prepareUpdate=p((o,e,n,i)=>{
|
|
62
|
+
let a=[];for(let u in n){let s=n[u];if(l(s))continue;let y=i[s.targetColumn]?.update,
|
|
63
|
+
h=y?.optional??y?.nullable;if(h===void 0)continue;let x=I(e,u);a.push({query:r(o,
|
|
64
|
+
e,x).build()},{query:m(o,e,x,s,h).build()})}return a},"prepareUpdate"),g.prepareRename=
|
|
65
|
+
p((o,e,n,i)=>{let a=[];for(let u in i){let s=i[u];if(l(s))continue;let y=I(e,u),
|
|
66
|
+
h=I(n,u),x=o.table(n).alter().existing().constraint(y).rename(h);a.push({check:q(
|
|
67
|
+
o,h),query:x.build()})}return a},"prepareRename"),g.prepareDelete=p((o,e,n)=>{let i=[];
|
|
68
|
+
for(let a in n){let u=n[a];if(l(u))continue;let s=I(e,a);i.push({query:r(o,e,s).
|
|
69
|
+
build()})}return i},"prepareDelete");let l=p(o=>{let{sourceIndex:e,targetIndex:n}=o;
|
|
70
|
+
return!e||e===G.Secondary||n===G.Primary},"isNotRealRelation"),r=p((o,e,n)=>o.table(
|
|
71
|
+
e).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=p((o,e,n,i,a)=>{
|
|
72
|
+
let{sourceTable:u,sourceColumn:s,targetColumn:y}=i,h=me(u),x=o.table(e).alter().
|
|
73
|
+
existing().constraint(n).foreign(y,h,[s]);return a?x.delete().null():x.delete().
|
|
74
|
+
cascade(),x.update().cascade(),x},"getCreateQuery")})(w||={});import{SchemaType as E}from"@ez4/schema";import{Index as N}from"@ez4/database";var A;(l=>{l.prepareCreate=p((r,m,g,o,e)=>{let n={constraints:[],indexes:[]};for(let i in o){
|
|
72
75
|
let{columns:a,type:u}=o[i];switch(u){default:throw new Error("Unsupported index \
|
|
73
|
-
type.");case
|
|
74
|
-
s).primary(a);
|
|
75
|
-
let s=
|
|
76
|
-
push({check:
|
|
77
|
-
|
|
78
|
-
query:h.build()});break}}}return
|
|
79
|
-
let e={constraints:[],indexes:[]};for(let
|
|
80
|
-
throw new Error("Unsupported index type.");case
|
|
81
|
-
s=
|
|
82
|
-
|
|
83
|
-
existing().constraint(a).rename(u);e.constraints.push({check:
|
|
84
|
-
break}case
|
|
76
|
+
type.");case N.Primary:{let s=_(m,i),y=r.table(m).alter().existing().constraint(
|
|
77
|
+
s).primary(a);n.constraints.push({check:q(r,s),query:y.build()});break}case N.Unique:{
|
|
78
|
+
let s=v(m,i),y=r.table(m).alter().existing().constraint(s).unique(a);n.constraints.
|
|
79
|
+
push({check:q(r,s),query:y.build()});break}case N.Secondary:{let s=Q(m,i),y=f(a,
|
|
80
|
+
g),h=r.index(s).create(m,a).type(y).missing();e&&h.concurrent(),n.indexes.push({
|
|
81
|
+
query:h.build()});break}}}return n},"prepareCreate"),l.prepareRename=p((r,m,g,o)=>{
|
|
82
|
+
let e={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
|
|
83
|
+
throw new Error("Unsupported index type.");case N.Primary:{let a=_(m,n),u=_(g,n),
|
|
84
|
+
s=r.table(g).alter().existing().constraint(a).rename(u);e.constraints.push({check:q(
|
|
85
|
+
r,u),query:s.build()});break}case N.Unique:{let a=v(m,n),u=v(g,n),s=r.table(g).alter().
|
|
86
|
+
existing().constraint(a).rename(u);e.constraints.push({check:q(r,u),query:s.build()});
|
|
87
|
+
break}case N.Secondary:{let a=Q(m,n),u=Q(g,n),s=r.index(a).rename(u).existing();
|
|
85
88
|
e.indexes.push({query:s.build()});break}}}return e},"prepareRename"),l.prepareDelete=
|
|
86
|
-
p((
|
|
87
|
-
throw new Error("Unsupported index type.");case
|
|
89
|
+
p((r,m,g)=>{let o={constraints:[],indexes:[]};for(let e in g){let{type:n}=g[e];switch(n){default:
|
|
90
|
+
throw new Error("Unsupported index type.");case N.Primary:{let i=_(m,e),a=r.table(
|
|
88
91
|
m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:a.
|
|
89
|
-
build()});break}case
|
|
90
|
-
i).drop().existing();o.constraints.push({query:a.build()});break}case
|
|
91
|
-
let i=Q(m,e),a=
|
|
92
|
-
build()});break}}}return o},"prepareDelete");let
|
|
93
|
-
|
|
94
|
-
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(
|
|
95
|
-
import{isTableMetadata as
|
|
96
|
-
|
|
97
|
-
(
|
|
98
|
-
ge=p((
|
|
99
|
-
"canRenameColumn");var
|
|
100
|
-
let{name:l,schema:
|
|
101
|
-
l,
|
|
102
|
-
...
|
|
103
|
-
teQueries"),
|
|
104
|
-
indexes:[]};if(
|
|
105
|
-
rename[
|
|
106
|
-
|
|
107
|
-
push(...
|
|
108
|
-
nested){let{nested:m}=
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
prepareCreate(
|
|
112
|
-
i,
|
|
113
|
-
push(...
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
prepareDelete(
|
|
117
|
-
e?.remove&&
|
|
118
|
-
|
|
119
|
-
remove&&
|
|
120
|
-
constraints:[],relations:[],indexes:[]};for(let
|
|
121
|
-
push(
|
|
122
|
-
|
|
123
|
-
c.relations&&
|
|
124
|
-
"combineMigrationQueries");export{
|
|
92
|
+
build()});break}case N.Unique:{let i=v(m,e),a=r.table(m).alter().existing().constraint(
|
|
93
|
+
i).drop().existing();o.constraints.push({query:a.build()});break}case N.Secondary:{
|
|
94
|
+
let i=Q(m,e),a=r.index(i).drop().existing().concurrent();o.indexes.push({query:a.
|
|
95
|
+
build()});break}}}return o},"prepareDelete");let f=p((r,m)=>{if(r.length===1){let[
|
|
96
|
+
g]=r;switch(m.properties[g]?.type){case E.Object:case E.Union:case E.Array:case E.
|
|
97
|
+
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(A||={});import{deepEqual as W,deepCompareObject as le,isAnyObject as J}from"@ez4/utils";
|
|
98
|
+
import{isTableMetadata as F}from"@ez4/pgclient/library";import{isAnySchema as H}from"@ez4/schema";var X=p((t,c)=>le(t,c,{onRename:p((d,f)=>!J(d)||!J(f)?!1:F(d)&&F(f)?de(d.schema,
|
|
99
|
+
f.schema):H(d)&&H(f)?ge(d,f):!1,"onRename")}),"getTableRepositoryChanges"),de=p(
|
|
100
|
+
(t,c)=>W(Object.keys(t.properties),Object.keys(c.properties)),"canRenameTable"),
|
|
101
|
+
ge=p((t,c)=>W(t,c,{depth:1,include:{type:!0,definitions:!0,nullable:!0,format:!0}}),
|
|
102
|
+
"canRenameColumn");var fe=p(t=>{let c=new V,d={tables:[],constraints:[],relations:[],indexes:[]};for(let f in t){
|
|
103
|
+
let{name:l,schema:r,indexes:m,relations:g}=t[f];d.tables.push(M.prepareCreate(c,
|
|
104
|
+
l,r,m)),d.constraints.push(...B.prepareCreate(c,l,r.properties)),d.relations.push(
|
|
105
|
+
...w.prepareCreate(c,l,r,g)),z(d,A.prepareCreate(c,l,r,m,!1))}return d},"getCrea\
|
|
106
|
+
teQueries"),dt=p((t,c)=>{let d=X(t,c),f=new V,l={tables:[],constraints:[],relations:[],
|
|
107
|
+
indexes:[]};if(d.create&&z(l,fe(d.create)),d.rename)for(let r in d.rename){let m=d.
|
|
108
|
+
rename[r],g=t[m].indexes,o=t[m].relations,e=t[m].schema;l.tables.push(M.prepareRename(
|
|
109
|
+
f,r,m)),l.constraints.push(...B.prepareRenameTable(f,r,m,e.properties)),l.relations.
|
|
110
|
+
push(...w.prepareRename(f,r,m,o)),z(l,A.prepareRename(f,r,m,g))}if(d.nested)for(let r in d.
|
|
111
|
+
nested){let{nested:m}=d.nested[r];if(!m)continue;let{schema:g,relations:o,indexes:e}=m,
|
|
112
|
+
n=g?.nested?.properties,i=t[r].indexes,a=t[r].relations,u=c[r].schema,s=t[r].schema;
|
|
113
|
+
n?.create&&(l.tables.push(j.prepareCreate(f,r,i,n.create)),l.constraints.push(...B.
|
|
114
|
+
prepareCreate(f,r,n.create))),n?.nested&&(l.tables.push(...j.prepareUpdate(f,r,s,
|
|
115
|
+
i,n.nested)),l.constraints.push(...B.prepareUpdate(f,r,s,u,n.nested)),l.relations.
|
|
116
|
+
push(...w.prepareUpdate(f,r,a,n.nested))),n?.rename&&(l.tables.push(...j.prepareRename(
|
|
117
|
+
f,r,n.rename)),l.constraints.push(...B.prepareRenameColumns(f,r,s.properties,n.rename))),
|
|
118
|
+
n?.remove&&(l.tables.push(j.prepareDelete(f,r,n.remove)),l.constraints.push(...B.
|
|
119
|
+
prepareDelete(f,r,n.remove))),e?.create&&z(l,A.prepareCreate(f,r,s,e.create,!0)),
|
|
120
|
+
e?.remove&&z(l,A.prepareDelete(f,r,e.remove)),o?.create&&l.relations.push(...w.prepareCreate(
|
|
121
|
+
f,r,s,o.create)),o?.remove&&l.relations.push(...w.prepareDelete(f,r,o.remove))}return d.
|
|
122
|
+
remove&&z(l,ye(d.remove)),l},"getUpdateQueries"),ye=p(t=>{let c=new V,d={tables:[],
|
|
123
|
+
constraints:[],relations:[],indexes:[]};for(let f in t){let{name:l}=t[f];d.tables.
|
|
124
|
+
push(M.prepareDelete(c,l))}return d},"getDeleteQueries"),z=p((t,c)=>{c.indexes&&
|
|
125
|
+
t.indexes.push(...c.indexes),c.constraints&&t.constraints.push(...c.constraints),
|
|
126
|
+
c.relations&&t.relations.push(...c.relations),c.tables&&t.tables.push(...c.tables)},
|
|
127
|
+
"combineMigrationQueries");export{fe as getCreateQueries,ye as getDeleteQueries,dt as getUpdateQueries};
|
|
125
128
|
//# sourceMappingURL=main.mjs.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ez4/pgmigration",
|
|
3
3
|
"description": "EZ4: A PostgreSQL migration library",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.29.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"live:publish": "npm run build && npm publish --access public"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@ez4/database": "^0.
|
|
46
|
-
"@ez4/pgsql": "^0.
|
|
47
|
-
"@ez4/pgclient": "^0.
|
|
48
|
-
"@ez4/schema": "^0.
|
|
49
|
-
"@ez4/utils": "^0.
|
|
45
|
+
"@ez4/database": "^0.29.0",
|
|
46
|
+
"@ez4/pgsql": "^0.29.0",
|
|
47
|
+
"@ez4/pgclient": "^0.29.0",
|
|
48
|
+
"@ez4/schema": "^0.29.0",
|
|
49
|
+
"@ez4/utils": "^0.29.0"
|
|
50
50
|
}
|
|
51
51
|
}
|