@ez4/pgmigration 0.29.0 → 0.31.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 +7 -7
- package/dist/library.mjs +9 -9
- package/dist/main.cjs +1 -1
- package/dist/main.mjs +1 -1
- package/package.json +7 -6
package/dist/library.cjs
CHANGED
|
@@ -15,14 +15,14 @@ rawColumn("1").from("pg_constraint").where({conname:e.rawString(t)}).build();ret
|
|
|
15
15
|
"1").where({column_name:e.rawString(l),table_name:e.rawString(t)})}}).build();return y},
|
|
16
16
|
"getCheckColumnQuery");var F;(l=>(l.prepareCreate=n(y=>{let d=new v.SqlBuilder;return{check:V(d,y),query:`\
|
|
17
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
|
|
18
|
+
TABASE IF EXISTS "${y}" WITH (FORCE)`}),"prepareDelete")))(F||={});var G=require("@ez4/database");var x=require("@ez4/schema"),L=require("@ez4/utils");var w=n(e=>!!(e.nullable||e.optional),"isOptionalColumn"),P=n((e,t)=>{if((0,x.isScalarSchema)(
|
|
19
19
|
e)||(0,x.isObjectSchema)(e)||(0,x.isArraySchema)(e)||(0,x.isTupleSchema)(e)){let{
|
|
20
20
|
definitions:l}=e;switch(typeof l?.default){case"boolean":case"number":return`${l.
|
|
21
21
|
default}`;case"string":return`'${l.default}'`;case"object":return`'${JSON.stringify(
|
|
22
22
|
l.default)}'`}}if((0,x.isEnumSchema)(e)){let{definitions:l}=e;if(l?.default)return`\
|
|
23
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(
|
|
25
|
-
null"},"getColumnDefault"),
|
|
24
|
+
date":case"time":return"now()";case"uuid":return"gen_random_uuid()"}if(w(e))return"\
|
|
25
|
+
null"},"getColumnDefault"),I=n((e,t)=>{switch(e.type){case x.SchemaType.Array:case x.SchemaType.
|
|
26
26
|
Object:case x.SchemaType.Reference:case x.SchemaType.Union:case x.SchemaType.Tuple:
|
|
27
27
|
return"jsonb";case x.SchemaType.Boolean:return"boolean";case x.SchemaType.Enum:return"\
|
|
28
28
|
text";case x.SchemaType.Number:return me(e,t);case x.SchemaType.String:return ue(
|
|
@@ -30,7 +30,7 @@ e)}},"getColumnType"),me=n((e,t)=>e.format==="integer"?t?"bigserial":"bigint":"d
|
|
|
30
30
|
ecimal","getColumNumberType"),ue=n(e=>{switch(e.format){case"uuid":case"time":case"\
|
|
31
31
|
date":return e.format;case"date-time":return"timestamptz";default:let t=e.definitions?.
|
|
32
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=!
|
|
33
|
+
properties){let o=m.properties[r],a=g[r]?.type===G.Index.Primary,p=!w(o),u=I(o,a),
|
|
34
34
|
f=P(o,a);i.column(r,u,p,f).missing()}return{query:i.build()}},"prepareCreate"),y.
|
|
35
35
|
prepareRename=n((d,c,m)=>({query:d.table(c).rename(m).existing().build()}),"prep\
|
|
36
36
|
areRename"),y.prepareDelete=n((d,c)=>({query:d.table(c).drop().existing().cascade().
|
|
@@ -61,7 +61,7 @@ existing().concurrent();i.indexes.push({query:a.build()});break}}}return i},"pre
|
|
|
61
61
|
pareDelete");let y=n((c,m)=>{if(c.length===1){let[g]=c;switch(m.properties[g]?.type){case j.SchemaType.
|
|
62
62
|
Object:case j.SchemaType.Union:case j.SchemaType.Array:case j.SchemaType.Tuple:return"\
|
|
63
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.
|
|
64
|
+
u))continue;let{[u.targetColumn]:f}=o.properties,S=k(r,p),h=!!(0,Y.isNullishSchema)(
|
|
65
65
|
f);a.push({check:N(i,S),query:m(i,r,S,u,h).build()})}return a},"prepareCreate"),
|
|
66
66
|
g.prepareUpdate=n((i,r,o,s)=>{let a=[];for(let p in o){let u=o[p];if(d(u))continue;
|
|
67
67
|
let f=s[u.targetColumn]?.update,S=f?.optional??f?.nullable;if(S===void 0)continue;
|
|
@@ -77,13 +77,13 @@ existing(),"getDeleteQuery"),m=n((i,r,o,s,a)=>{let{sourceTable:p,sourceColumn:u,
|
|
|
77
77
|
targetColumn:f}=s,S=(0,X.getTableName)(p),h=i.table(r).alter().existing().constraint(
|
|
78
78
|
o).foreign(f,S,[u]);return a?h.delete().null():h.delete().cascade(),h.update().cascade(),
|
|
79
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=!
|
|
80
|
+
let s=i[o],p=g[o]?.type===K.Index.Primary,u=!w(s),f=I(s,p),S=P(s,p);r.add(o,f,u,
|
|
81
81
|
S).missing()}return{query:r.build()}},"prepareCreate"),d.prepareUpdate=n((c,m,g,i,r)=>{
|
|
82
82
|
let o=[];for(let s in r){let{create:a,update:p,nested:u,remove:f}=r[s],S=g.properties[s],
|
|
83
83
|
E=i[s]?.type===K.Index.Primary,b=c.table(m).alter().existing().column(s);if(a){let O=a.
|
|
84
84
|
definitions?.default,C=a?.nullable;O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(
|
|
85
85
|
C)}if(p||u){let O=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
|
|
86
|
-
b.type(
|
|
86
|
+
b.type(I(S,E)),O!==void 0&&b.default(P(S,E)),C!==void 0&&b.optional(C)}if(f){let O=f.
|
|
87
87
|
definitions?.default,C=f?.nullable;O!==void 0&&b.default(null),C!==void 0&&b.optional(
|
|
88
88
|
C)}b.empty||o.push({check:U(c,m,s),query:b.build()})}return o},"prepareUpdate"),
|
|
89
89
|
d.prepareRename=n((c,m,g)=>{let i=[];for(let r in g){let o=g[r],s=c.table(m).alter().
|
package/dist/library.mjs
CHANGED
|
@@ -19,43 +19,43 @@ number":return`${g.default}`;case"string":return`'${g.default}'`;case"object":re
|
|
|
19
19
|
'${JSON.stringify(g.default)}'`}}if(X(e)){let{definitions:g}=e;if(g?.default)return`\
|
|
20
20
|
'${g.default}'`}if(Q(e)&&a)switch(e.format){case"date-time":case"date":case"time":
|
|
21
21
|
return"now()";case"uuid":return"gen_random_uuid()"}if(O(e))return"null"},"getCol\
|
|
22
|
-
umnDefault"),
|
|
22
|
+
umnDefault"),w=r((e,a)=>{switch(e.type){case q.Array:case q.Object:case q.Reference:case q.
|
|
23
23
|
Union:case q.Tuple:return"jsonb";case q.Boolean:return"boolean";case q.Enum:return"\
|
|
24
24
|
text";case q.Number:return re(e,a);case q.String:return ne(e)}},"getColumnType"),
|
|
25
25
|
re=r((e,a)=>e.format==="integer"?a?"bigserial":"bigint":"decimal","getColumNumbe\
|
|
26
26
|
rType"),ne=r(e=>{switch(e.format){case"uuid":case"time":case"date":return e.format;case"\
|
|
27
27
|
date-time":return"timestamptz";default:let a=e.definitions?.maxLength;return te(
|
|
28
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=
|
|
29
|
+
properties){let n=m.properties[t],s=l[t]?.type===oe.Primary,p=!O(n),u=w(n,s),d=N(
|
|
30
30
|
n,s);o.column(t,u,p,d).missing()}return{query:o.build()}},"prepareCreate"),f.prepareRename=
|
|
31
31
|
r((y,c,m)=>({query:y.table(c).rename(m).existing().build()}),"prepareRename"),f.
|
|
32
32
|
prepareDelete=r((y,c)=>({query:y.table(c).drop().existing().cascade().build()}),
|
|
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
|
|
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 I=r((e,a)=>`${T(e,a)}_pk`,"getPrimaryKeyName"),B=r((e,a)=>`${T(e,a)}_uk`,"ge\
|
|
34
34
|
tUniqueKeyName"),A=r((e,a)=>`${T(e,a)}_sk`,"getSecondaryKeyName"),P=r((e,a)=>`${T(
|
|
35
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
36
|
let{columns:s,type:p}=o[i];switch(p){default:throw new Error("Unsupported index \
|
|
37
|
-
type.");case b.Primary:{let u=
|
|
37
|
+
type.");case b.Primary:{let u=I(m,i),d=c.table(m).alter().existing().constraint(
|
|
38
38
|
u).primary(s);n.constraints.push({check:R(c,u),query:d.build()});break}case b.Unique:{
|
|
39
39
|
let u=B(m,i),d=c.table(m).alter().existing().constraint(u).unique(s);n.constraints.
|
|
40
40
|
push({check:R(c,u),query:d.build()});break}case b.Secondary:{let u=A(m,i),d=f(s,
|
|
41
41
|
l),x=c.index(u).create(m,s).type(d).missing();t&&x.concurrent(),n.indexes.push({
|
|
42
42
|
query:x.build()});break}}}return n},"prepareCreate"),y.prepareRename=r((c,m,l,o)=>{
|
|
43
43
|
let t={constraints:[],indexes:[]};for(let n in o){let{type:i}=o[n];switch(i){default:
|
|
44
|
-
throw new Error("Unsupported index type.");case b.Primary:{let s=
|
|
44
|
+
throw new Error("Unsupported index type.");case b.Primary:{let s=I(m,n),p=I(l,n),
|
|
45
45
|
u=c.table(l).alter().existing().constraint(s).rename(p);t.constraints.push({check:R(
|
|
46
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
47
|
existing().constraint(s).rename(p);t.constraints.push({check:R(c,p),query:u.build()});
|
|
48
48
|
break}case b.Secondary:{let s=A(m,n),p=A(l,n),u=c.index(s).rename(p).existing();
|
|
49
49
|
t.indexes.push({query:u.build()});break}}}return t},"prepareRename"),y.prepareDelete=
|
|
50
50
|
r((c,m,l)=>{let o={constraints:[],indexes:[]};for(let t in l){let{type:n}=l[t];switch(n){default:
|
|
51
|
-
throw new Error("Unsupported index type.");case b.Primary:{let i=
|
|
51
|
+
throw new Error("Unsupported index type.");case b.Primary:{let i=I(m,t),s=c.table(
|
|
52
52
|
m).alter().existing().constraint(i).drop().existing();o.constraints.push({query:s.
|
|
53
53
|
build()});break}case b.Unique:{let i=B(m,t),s=c.table(m).alter().existing().constraint(
|
|
54
54
|
i).drop().existing();o.constraints.push({query:s.build()});break}case b.Secondary:{
|
|
55
55
|
let i=A(m,t),s=c.index(i).drop().existing().concurrent();o.indexes.push({query:s.
|
|
56
56
|
build()});break}}}return o},"prepareDelete");let f=r((c,m)=>{if(c.length===1){let[
|
|
57
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{
|
|
58
|
+
Tuple:return"GIN"}}return"BTREE"},"getIndexType")})(ae||={});import{getTableName as ce}from"@ez4/pgclient/library";import{isNullishSchema as me}from"@ez4/schema";
|
|
59
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
60
|
u))continue;let{[u.targetColumn]:d}=n.properties,x=P(t,p),S=!!me(d);s.push({check:R(
|
|
61
61
|
o,x),query:m(o,t,x,u,S).build()})}return s},"prepareCreate"),l.prepareUpdate=r((o,t,n,i)=>{
|
|
@@ -72,13 +72,13 @@ t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),m=r((o,t
|
|
|
72
72
|
let{sourceTable:p,sourceColumn:u,targetColumn:d}=i,x=ce(p),S=o.table(t).alter().
|
|
73
73
|
existing().constraint(n).foreign(d,x,[u]);return s?S.delete().null():S.delete().
|
|
74
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=
|
|
75
|
+
let i=o[n],p=l[n]?.type===V.Primary,u=!O(i),d=w(i,p),x=N(i,p);t.add(n,d,u,x).missing()}
|
|
76
76
|
return{query:t.build()}},"prepareCreate"),y.prepareUpdate=r((c,m,l,o,t)=>{let n=[];
|
|
77
77
|
for(let i in t){let{create:s,update:p,nested:u,remove:d}=t[i],x=l.properties[i],
|
|
78
78
|
z=o[i]?.type===V.Primary,h=c.table(m).alter().existing().column(i);if(s){let k=s.
|
|
79
79
|
definitions?.default,C=s?.nullable;k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(
|
|
80
80
|
C)}if(p||u){let k=u?.definitions?.update?.default,C=p?.nullable;p?.type!==void 0&&
|
|
81
|
-
h.type(
|
|
81
|
+
h.type(w(x,z)),k!==void 0&&h.default(N(x,z)),C!==void 0&&h.optional(C)}if(d){let k=d.
|
|
82
82
|
definitions?.default,C=d?.nullable;k!==void 0&&h.default(null),C!==void 0&&h.optional(
|
|
83
83
|
C)}h.empty||n.push({check:D(c,m,i),query:h.build()})}return n},"prepareUpdate"),
|
|
84
84
|
y.prepareRename=r((c,m,l)=>{let o=[];for(let t in l){let n=l[t],i=c.table(m).alter().
|
package/dist/main.cjs
CHANGED
|
@@ -60,7 +60,7 @@ c);a.push({query:r(o,t,i).build()})}return a},"prepareDelete");let r=p((o,t,n)=>
|
|
|
60
60
|
table(t).alter().existing().constraint(n).drop().existing(),"getDeleteQuery"),u=p(
|
|
61
61
|
(o,t,n,a,c)=>{let l=c.map(({value:i})=>`${i}`);return o.table(t).alter().existing().
|
|
62
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.
|
|
63
|
+
i))continue;let{[i.targetColumn]:y}=n.properties,h=A(t,l),S=!!(0,te.isNullishSchema)(
|
|
64
64
|
y);c.push({check:b(o,h),query:u(o,t,h,i,S).build()})}return c},"prepareCreate"),
|
|
65
65
|
f.prepareUpdate=p((o,t,n,a)=>{let c=[];for(let l in n){let i=n[l];if(m(i))continue;
|
|
66
66
|
let y=a[i.targetColumn]?.update,h=y?.optional??y?.nullable;if(h===void 0)continue;
|
package/dist/main.mjs
CHANGED
|
@@ -55,7 +55,7 @@ let i=[];for(let a in n){let u=n[a];if(!k(u))continue;let s=R(e,a);i.push({query
|
|
|
55
55
|
o,e,s).build()})}return i},"prepareDelete");let r=p((o,e,n)=>o.table(e).alter().
|
|
56
56
|
existing().constraint(n).drop().existing(),"getDeleteQuery"),m=p((o,e,n,i,a)=>{let u=a.
|
|
57
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{
|
|
58
|
+
{[i]:{isIn:u}})},"getCreateQuery")})(B||={});import{getTableName as me}from"@ez4/pgclient/library";import{isNullishSchema as ue}from"@ez4/schema";
|
|
59
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
60
|
s))continue;let{[s.targetColumn]:y}=n.properties,h=I(e,u),x=!!ue(y);a.push({check:q(
|
|
61
61
|
o,h),query:m(o,e,h,s,x).build()})}return a},"prepareCreate"),g.prepareUpdate=p((o,e,n,i)=>{
|
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.31.0",
|
|
5
5
|
"author": "Silas B.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"import": "./dist/library.mjs"
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
|
+
"sideEffects": false,
|
|
31
32
|
"workspaces": [
|
|
32
33
|
"contracts/*",
|
|
33
34
|
"libraries/*"
|
|
@@ -42,10 +43,10 @@
|
|
|
42
43
|
"live:publish": "npm run build && npm publish --access public"
|
|
43
44
|
},
|
|
44
45
|
"dependencies": {
|
|
45
|
-
"@ez4/database": "^0.
|
|
46
|
-
"@ez4/pgsql": "^0.
|
|
47
|
-
"@ez4/pgclient": "^0.
|
|
48
|
-
"@ez4/schema": "^0.
|
|
49
|
-
"@ez4/utils": "^0.
|
|
46
|
+
"@ez4/database": "^0.31.0",
|
|
47
|
+
"@ez4/pgsql": "^0.31.0",
|
|
48
|
+
"@ez4/pgclient": "^0.31.0",
|
|
49
|
+
"@ez4/schema": "^0.31.0",
|
|
50
|
+
"@ez4/utils": "^0.31.0"
|
|
50
51
|
}
|
|
51
52
|
}
|