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