From c04a49f684e897be4d50bb4b72054f406869fcc2 Mon Sep 17 00:00:00 2001 From: SDGDen Date: Wed, 4 Mar 2026 13:39:51 +0100 Subject: [PATCH] npm db should be pre-populated now --- deploy.sh | 29 +++++++++++++--------------- stacks/npm/data/database (1).sqlite | Bin 0 -> 118784 bytes stacks/npm/data/database.sqlite | Bin 114688 -> 114688 bytes 3 files changed, 13 insertions(+), 16 deletions(-) create mode 100644 stacks/npm/data/database (1).sqlite diff --git a/deploy.sh b/deploy.sh index 81c83c0..a9f4233 100644 --- a/deploy.sh +++ b/deploy.sh @@ -48,7 +48,11 @@ replace_in_sqlite_db() { return 1 fi - echo "Starting replacement of '$OLD_STRING' with '$NEW_STRING' in '$DB_PATH'..." + echo "Starting brute-force replacement of '$OLD_STRING' with '$NEW_STRING' in '$DB_PATH'..." + + # Escape single quotes for SQL + local OLD_STRING_ESC=$(echo "$OLD_STRING" | sed "s/'/''/g") + local NEW_STRING_ESC=$(echo "$NEW_STRING" | sed "s/'/''/g") # Get a list of all tables in the database local TABLES @@ -64,25 +68,18 @@ replace_in_sqlite_db() { # Loop through each column for COLUMN in $COLUMNS; do - # Check if the column is a text type (simplistic check) - local COLUMN_TYPE - COLUMN_TYPE=$(sqlite3 "$DB_PATH" "PRAGMA table_info($TABLE);" | awk -F'|' -v col="$COLUMN" '$2 == col {print $3}') + echo " Processing column: $COLUMN" - # Only proceed if the column type contains 'TEXT' (case-insensitive) - if [[ "$COLUMN_TYPE" =~ [Tt][Ee][Xx][Tt] ]]; then - echo " Updating column: $COLUMN (type: $COLUMN_TYPE)" - - # Perform the replacement - sqlite3 "$DB_PATH" " - UPDATE $TABLE - SET $COLUMN = replace($COLUMN, '$OLD_STRING', '$NEW_STRING') - WHERE $COLUMN LIKE '%$OLD_STRING%'; - " - fi + # Update every cell in the column, casting to TEXT to force string replacement + sqlite3 "$DB_PATH" " + UPDATE $TABLE + SET $COLUMN = replace(CAST($COLUMN AS TEXT), '$OLD_STRING_ESC', '$NEW_STRING_ESC') + WHERE CAST($COLUMN AS TEXT) LIKE '%$OLD_STRING_ESC%'; + " done done - echo "Replacement completed for all text-type columns in '$DB_PATH'." + echo "replacement of '$OLD_STRING' with '$NEW_STRING' completed in '$DB_PATH'." } #example usage: replace_in_sqlite_db "database.sqlite" "Europe/Amsterdam" "UTC" diff --git a/stacks/npm/data/database (1).sqlite b/stacks/npm/data/database (1).sqlite new file mode 100644 index 0000000000000000000000000000000000000000..6179ea0f3f12038fb5326441283b1227b1724062 GIT binary patch literal 118784 zcmeHwTZ|iLmL4z7CfPUY;x@+kMT zlT{R}*cS=?(CQx9gPqAHkICjCi``&?JOl`k1(F~@9`cavVi)tUK(L!U2MK}&l1&gN z$m~PT|JS`(#fw|AZ28b`s`%Hb|3CGe^Pm5I&c`2KlQhC@D($AAafQ&CP&gcVljB06 zP!s-MhClPO02d?X5BN9ixDL8(h8BMD|6*`AlKO(uyp;NN>Wj&d@jo3~O9=5_#nvPL zGyH?_QqbdH*YwfJQO4RaKM_w~xDbBKYeKC-L?VclZAI0ri^(e=t*_l&=WedOb#0xi zTIp5pQdJVGoFr>xi?lge(Kxx&XmG8z)D+qW+zvV5gpQ_2a=lHOMAqiGDqIN~5i5#Z z!!Q|L4_ZZEsDKXE2Pjt%cLf;;D|JQQl(wpzM)miz1_x5uyNRY~&&=xBW zaaXxrpf4gMRUtAn_}$EU4BJ<%iASkqJbm?Y_-I*@MY7LKeT%f4lB!Yz zXPEvbFYI(PNP+v}flRS%ITiz)|Z-%CSP+9;`-J-(ZWr!QX) zKfcfEh9^7E&!oGScCdGKUFRHQp6J7l6*Ge8=^-;NhNi#dQG77(+HL) z?G^R7E7f;;QwY0)CbWZdXe*7bURU-}X_SfL&kjG3sTy9~FcwAB`9e-PRm=tg*cj=ItG+-1O0 z%j?rH^y=CJue2;j_cwbqKf*c{k6!a|WfvI>;^j-pw_76t#G0Vh?VcPYSfy9!@WUR6 zWREh@c)C;yA8j#ycVx0(v5588^Gh3Xzk?si69n~x$S7@$^nRLpA1pVis07+V7*TkB zMqP|~ZeF5b&B2q|qwj~A@;qAfdu`9_L|l1RJ$Ju4slnj&%o+GfjZe~XEWN}JB7g`W z0*C-2fCwN0hyWsh2p|H803v`0Jhuo;raljir!GWO|0VV3sehaLr>ULPAEqv(ev;Zx zT}u_8+t}C6NBOX02UVrs zkYI=Q$kbT$m82tmG7-HH7CNG&!RC%FE)k1Pv%Dg(H*_i)y%@H)hMj{#znAnB6d#RF zCtsYS1MY&1O8wP=P}?B3f5CKW#OJ0{s;Rv-~AbXE*84Y zo+3D}1q(=Zlc{76A`i)aRAqV2F7EGM`d^D-{d9r#}VR7x-ME1RNRJ>kgJo z+WW;RtAt#h&+(<=a;{);Po24d!ws#Yf*UN+dI4o|G8VdJlwdxUcR%HN3qDB^ zx>sUPX^XGsYp?Q!SATdf_sNgnmB?yiMZEo^>*|NMZ+*H>?vVAB8}Iz6{?YP{xANk) zbmxcn_CDF)dr(@w-}>>V&4-7(VOns~QE+}fpW|}5a;a1<7WIN%NuF}owy)iP?|tFD zx36t&k=)MeTMr)8>hH_y_WpxgtBcxu`yJ^;I9d ze;i7!!xw%K0Ym^1Km-s0L;w*$1P}p401-e05P@fmz|nUj6EHwdB<9oUqx6NYfjGbH zlO%{uNq*BfSW$;~<@7iET3p=Q+gpG*k1WpS0^D2FFBfYo0@)PF>Sk$~)be>E7Rk~I zoYg1_^;KcD$iHEn?0CJ|+{m!JGIx(w!a8$TXJ;+uoP%{^;=q-}o`rbEa9l)bzp08_ zEOK^xL6IAh41wfU^!fTv*K)NTKA%Ivf9| zu7*<|o4EUt%Ah$q1jMh|p*> z1zFf4y}xg>>4l^#Z|7Ws-}Zn3vmS%Diln{>rTzxK@Ph~-0*C-2fCwN0hyWsh2p|H8 z03v`0AOg=30ikduR`ZyzaL3SQ-3-2?&Kd$zBcjm@xK}08T$`oYsr5y zx}5kt{=eg5?Dv!38U2gr2mpK)L;w*$1it`NnJ{K|hnXlZkZlEL`a` z%KAhwU*?y}CC?_fT)v!N+Q>8osj=YQV3xVdujUu{rIiKvF63i>@Gv89N%DS0-+z`V zgL7pvXQYvKJ5!cBjm9DMU#o81J(`|iTqV{n+gwfiaaAf8@@_^8tL1!tBU5iE9nps^ zWlv_e!0m5)m$WbZoxvH~xSKo|N>a2EN6B+KgRj37PMWZFGng+IfkDr?z8qgJt!!jO zS@mJBC2cDW^1(1n9ZjVSUM@r_D@=slyf6`Z!OHXHd~qYQ+md~F*^|KIbVq25p+9L3 z#n724Lwc`-`!U4xZs~!V@jNgjbQ+ouODug4SR(Rp7{w%i6={JT`Y^ZWCj2j$f z`y#}9svKV`^M#F!vbibM{W+?4nh?TTuX4i)?%bH6OS8Qy8Yp+MTr}7+&(wl_Du5+m zVX%F0av7)(hf?r!Ndv1_`k1F;IbZT<6HVI4=-$pk}v$jp%|Ksn+)~QC^-J?H3KwhBcmxw!_P`e z+B~~8oGQIIs`K-Xqp9&h5z!Meu7^T-r4LFNOmurZe`&g+4&#%ixrq zog25BWts$x3F@|w;AnD90dqMVP-jMTe%AYG5^vQxiyxW#+~6Xnv4u6vs}4o^qVY-=1q?bV>bdHi;jV``eqS~qHz}bxX#%8gy62x6Wh7uuq ziM%Oo0VlvnlW0Pw{P1ut16G{0D;=-~j7|RVn8YpVe(aHMKx1G_cQjDCJ(>$!ka~=m zKmofdUzd~%5OW6QJh+@UMlCseYcUu>Z^xe|*>a8r%h|v69azRzGug|X;k7Oachz6o7qlfD4U}+j*KlA7 z8(DM-7%T8F6?h|RiPvkMX`k66ahha{Hxek`fR6UyvNe0;C|wAE_vJfTHRk;+c`-Tj z__QUh{zoqF#&AP)u5L7JD2 zCQJ35fLr<*e|YAJ9HNJ^+OQVD#)*vC3=FYaq}`NM6#_Iu`a_tpQ>B{JkhBBJX`=zp zusXv6LjnaX&d~k;G%F&)bbei9O;M5|6l0L zH*K(w{2~H~03v`0AOeU0B7g`W0*C-2fCwN0h`=xi(Di>D{||#0(jo$g03v`0AOeU0 zB7g`W0*C-2fCwN0-#i59_OR%bm)vt~pvq}vAH-;i(t?YkMNboSqvSf-(6>C} z5JoRLo|ff28PSWFiP3XnqA$HESp6JAfJ|*wc~z(TOdX4-FJ27)F3)O@z3Irl8h6(i z`^NKLSFE!;?2JxeB{6}g=XJWJ1Y&n=wi={fJiTh`^KiPhY(pK3bM!k?gY* zRQ8TU^F&ppBTM%?#B+DdFbB78T>bFYI(PNP+v}flRS%ITiz)|=ke7y<5B3qgb&H%FvG`3k)gNeMol^&$_R?y(= zjE$ke1P;s9qbP^L3Zlv$C*tw+^mO>Aa3mIbX%sE`m*|${vk~7A{VT_2r52Tncb#;aknUF(z6joubQMCv>bpH za<1O0N}wYSO>j_e*1xMasN}Op=VQ!79o=QPH6=JgOSfUG6?*2@^K;aVrspmLmRepP z1?n}>0A6WXjzK{7Xnurs;2yo^;mR&D7R1Y!l5e-pg7vBiTHPKXK!R0zg${=7QBU?L z6OE@!rSQ=f<9A0U`xT2=e?7mn5%)Xzkvu_AKZuOd#^^RJ2BYS>E zU5t5dUZP;l!IRme?}wT4JX-X7ZO`jOTzOVKcb|pSCS%i~ShyOBZ-%SU-Ie}6m1>nE2cY{swy)8jiD|-K@YZ}nf5`H$D{Ikf1X`TQ^?kesIjm~f{GUu8hW|PR-?ELxB^x8}~ z#75ah-vAT~CXb=-2R#b*k`>;#c=1G>h^H@H2>&e2u&{=3*2Sb74=de7q)T0Ubtb=F z&4FV+8kEdCYdwsG1YI0rYWdqYSDc+nhHq0fJ9((LARSTCU|g{!m=`a&)yztNHfq*u zJgC&}!CBafdsyf)JGO17b9e^5pN+E#SqDI1M{I*Fgr6;Y^!+nzDe6S;#W}4iZBD$u z&wF65!{7o&KoHK`Xnmf=Qk0WPKbQbSDiF7gbs-KEv<2N$+OP%`WTXAyJHD7=J)6f# zrk9R7@3=hY2F-Ej*=XkzUAluwKv$>!kwF0DK(|p6mD5KM(Y)L%t@8T#X|HPe2~9d9H8L(>+@1>PB> z62cDCB<7iCo}NID8%HJ|W}F9WGUbhorYH?{K^5WPYI~Qo7ZkZ6$%F=aG|z_g2@fx6 z^DGaD@Mu0k&&6lT789zK0EN4O8K8=h;c)q59hY763rwTA#iCNNp$0JI3KVGrSSC#OpQBxpHyEBXOE!i#HM|UQwx^s*hDulpSzCSl>bEp2|GeBD!>w zGmqbQiZWL&EtLzd#@9%)rQ1umJEyCVyHJ&mYcZTwV+^W&ZGFLf(Iezixmff`qHZB9@zR$C zyp7-BVgO3)ex^W~P(*1{B4RHZhs#atjhJgq$W@>_)WK&4IAc`WZ*~pA<}%b(g_jP> z1y2e)0k?Fwn()lx;@;lg0{D5{6*Qr}01nF*^~=R2ffRDZm1R-LXpa1`}=vk7G}Kb&-&$e5+WLfhM}3KGcJ9%3n{jRri!>I`#y1{9g5APZZB zWdeJa4_u^FUt!q%z2AVZnKXQT_Y8bZB=qzDN+_kkPy8SP zhyWsh2p|H803v`0AOeU0B7g`W0*JtqK;UR9Jo?&e>dSk^EW*4B5eVKUn?k3daUa9= zC)tlxrgpe@Ve#6WICyAHA;5$H zop(~p`ZR~n)XBEiYyef}a17omocbRj_#Z!r03v`0AOeU0B7g`W0*C-2fCwN0hyWt+ zoFI^jzLs>(J<#?4k*P02sehAtkXnKZ{2&5|03v`0AOeU0B7g`W0*C-2fCwN0&kX`U z7)gW*h2(|wS^emO%QL=DQf`6$x0qvxL>?Z#6=l!Q4*ER5oL}IVXeNt%-pJ!hgyoSP zIFD7D$BLfGl99<9VV23ofip4RWW~q;{r^2TN{ugq2p|H803v`0AOeU0B7g`W0*C-2 zfCvO4K*#^F#D5M={c`e8CVy|@$8d=sL;w*$1P}p401-e0zOe{A-kW}`O~=!P$1;4+ z&xe1J(u7)rmh-mcZgcOg-{#hC-F*M*4S4?g`i-01jrZa2*0pPMT-ElMRpmrMBbwAC&if8$S^fkr zM_zW}jv}ZpEz%$waqwo|=H6ca;o7ZhH@Vr|EO6uWa$M!^sR|r3wRtuD6g#M@+^*2B zZwu{9`BEwCByP0{bB$bS3EFlyU!H>9Zqxdb+YZ(GlDfUR^(FVXO{;Pm+1IT1vbm;c zQEzJ9D7iel^)1hELf4Cqr)4oGa03uCF?u}4^~#*ln}XF{RtLz`es`gxDU>JkG5W@p zx+0QZ1%aEu+3cgYUWli8K76vsDxAY9S*6~Phz!0O>qJ#64RG&fq@-PyuG&pd^;A1q z(Kxx&XmG8z)D+qW+zvV5D9e%zm8}Vd0PDWh&U})J*7i~7sCEtlCm+sA?<5gLr~|48 zP6vVE*KHSYbJZdTi9^NA)a?BE(e&C(I3&p;*;ns3;B%~i+~ z*Ba_E5!^!B^~5X|U{h-MNL{OF2dyAnIAeo8H%n`uLGPEFO~|UZQ12}ZAF#7@{GSN@ zuh0}X@%^z+6YA*CNB()_&mrOY{T$ytV>z+C;&fdJ-iX1?X~8GSc5|9CEJ}BzfZdjS z8vn$5Qk!gb{9KHe`1}fbI0ZkV;G}y~+M;eNdU`lL{_T_{-}NqG^4>@gOJ&{>31TW( zzSKv@X(YT$GuQ(O6B%B>Y*aBA1o%$f9nQ)4ttm^u-r8C!mt1~|p-$5zy8=%J3YdC? z?Q)eec%TpJ$pz(lD*w~sq$Sr6Jr%c9E_lNO&?H-~6M=HAHqJv|qwr=ol+L)4PCmBv>-DtOMCnG^9vQ?#GEh6VX@4#GGtyQR&NY|)oF`OietG1LT_w9WDlv) z)5OuplaPP!E(u>O7X0lQMD&38Ds_0fo)Kt<4TIBTFrJaAFH%5`#lSQI)l`l+a*-9xy+MmuTCoGEH(24 zQ_XwZEBH;5Y&A={?OCa}J%d%Te)f#6oKc$oYSwR^%&=y?*27lv0YiAyuqUZu$HG}t z!ybF*@RrIYk0ApMC^@2io(b#`_3anCx`2*;&tU!Kr`;{`?S{JdH9@ETn-UIEAOC+6 zn)<_ux0C-h{wQ`a@~=amoO<|wQu_^4bv`%d_$?m``EtSNY`Kzb<22?rPBfHfo6td= z@0bmyj{6!XI=wuQabirIe$eJOk4%GRqJ4Uj_UWYdat|fTFXY4>G7YRU_ZV-qbpc)#+=@C zXp^~J$(3X)m|MSksFxA1yQg~DG=r!YOzpK#-%|QV??x?q;#zk5yOtUITb_oIFPDr- zbW6)7Io%;O39asgokU(J2^jED~TiJuHK7-gWgVd*u>|UBd{d&^+_2~9@ zn0~#IoH^;XU4?G_DlF;8Hs38q{$o}D;LbtAFExZgBSZ;erZ1ED4kzsrCVccI=uAX9Orr{U=GJiLp_>E zDs|Zc*&5ps30*y-!*2S5Z|Zw)7wSqAvh=*VEY){BNy4t639wN$v$#l4d&0I=tP^ zB~=Bd2$23Tvn#1mO#f?5i6C}AqH3@% WPUk1=Tpa!?TpSQ-KdGRDAx2tx*2%)+p+%~S_- zYlb*pZRN)}z=c1;*3tc^up78cOf*J)LsX*i4G?@G@r5DLs0jvt?X|ya3%t4H^7}mB z=lgx0-(6>?uCr6uYlY_E{MFDrx##lRG-aYFV|T=C`p}5FeMjW?O8mas$OV=IPq|zS z<3?2-ZpKsZJ5bm7t_Pj&Xp*@B%za`+13ht_$N2pZql=;_wVGuG`e!ObJ4+egGdwix z5$*_;{4M@P{jffd>*G}PYmCV7x-RW3+eSaZg(tN7fX*}*H)L6-4UG(}%t~~$*Ls?K z`|6q+4|=qh(Cy)+Ld(wDfWXIKrUZEhJ&L>D!By(H)Z$>UKnOsFj5u;5q($mH`VN)X*%16B+s{(u$s$dyIqRW#|QkP9b$=&wb$1B+S-~L(8a-J`T(zwqf4+d`teGV zX-#;gnV+FF0h)^&v&FLIqWxi8rXoisR*eVdU^zCfi0*|~DG8SkzrxW>Tqqaa58F`R zuuVDta@fsjb&2z+nZgm9Md{Mm>S*=(np!sFCdEeMA?%BzWxUK5lbaf`KWmTr>6k68 zR)(F(Ir^&7wtdviF&g=(RJL_@bb)ei8guhB-ZH)`OsO@If0{!_#>9*{FE0A2K8RA`alU(xl9Z`ma@`loUr6Utb6Ob}eDb(CyJebYZGEg)55a zr1ikRp&?ue+BLl;jd?h|7WY#V#)&F!ruHj}e06gj#3tFbO(lb@^;j9onc18wreujs z&Uk^>K#a~}tsmQvdDenLJ_}kn`w^*%+?cHlX#AAXkN*@0jBJ1gdeNem+;_zHtDuQs z(w|kZ!ltN8P9J=qpUoY_YjRPB7x;}_D}(53nqSp=aA7Gc2wgQMlF4-{2%CsnY)8`Z zAiNIzHY0&b#d{|pEs(Sy!3N+f4TLHXzc~4n)`mV<4g4;FP+sxOsdO#zyAYI1=Ml^S z{w-X2$|W|OO&3g>$A4#G74SPa!dIY2;X={Z4@E>-j(w*e zHUeM664E6)&ZR3$)8}A4WU79kbU@+x>c3@uI!?Pn^%LN4;CG>Gb2h18BHp?1)IfG$ zgf(Dh_fwjqZ_Y`e-EMK>QCH zpLo7W5$}7Ew0sJ-;v1ZsRP@c&=g(Kf^DUPiM8JcK<|h?-qeI4z^Jy8?Q_vx2Ji6T~ z^Q;vwu}6A-6Er!qIBu+Z9_dje{&gdLgd)BpMRBwyhoCO8dIqkhIzbPoi=*TgkS@={ etB^;2nfCVDVtZq~y}YE@exRYX&R%}Fz5Rc|9JJy9 delta 1904 zcmZuwYiv_x7(Q>eUe4(`JzcxejjruhoCVpsO9QUEvXljI?gkQANWqQP*|uPtKJ*A1ViyayV3~ zT{c_DU_me4)Fc0id^}YHT6F$I7Xe2oK0?4lJc{(k#8xSOm7M?L9TY{SrO`B}xJ~Kg zV=~^S`ChY=yT%o;XVk0e7npCDI(l01q$;eur}W6j=xoJzgm_f04(YYoq$^F=+R#d* zIzQm)40wB9_V(EQN4k7RyjFLqv&>$)wcJj=jxzZrlplRU6FA@wWwCLhs%|s-HEO}1 z4}#9*a8{I+9k3qm@*nlsAC^KF-ruIzQFN@GDn#ofS#3y_5BPe$Ekw6aN77bMju4k25?nblG&XI-pIrkbnw-i_)&F#AD@P*B zR7-?S#7{o5Pn%Pr&rDaVLpnw>ZX@B;SW>;LSqi!{ZD(|}q`e`w4zzP7FID@+nJQYN zlBCfu(LD6^j3pJeI^$$Gr35p@qC*E~E%@Qb$3oO3doGznrP;aJdHiwt^u z&agf;q>dhcAGyq;RZh0XfPVfF2AuQd>QE+#K$i^#=WDUA3UvIMdGv3@E0`s(|85`UkSFsJo=ikK9SOmWe&5d@!DN z;cWxZgy+hkQn)n$4Zt4clf`?vzKLthVA~Q&Lsx8G-eJX%duqJ>7t}%t5p0A|B}%b5J4$vyak@v)k!El&{J2WjCmO0|Ry3 zsSb038*aqIm)AHT>&O)DFTozNQ_};mdkYVSBam>OC)X%9iKxfzu{_Aq{BM=etY{Z0xvy0#Zwrzb