From 17d0f3a0248a274025d3b21cfea8fd5666ea5103 Mon Sep 17 00:00:00 2001 From: vran Date: Fri, 25 Mar 2022 18:42:10 +0800 Subject: [PATCH] feat: update docs (#64) * feat: update docs * fix: ut execute error * feat:update auto-check workflow --- .github/workflows/auto-check.yml | 11 ++++++++++- README.md | 2 +- core/build.gradle | 1 + .../test/java/com/databasir/core/BaseTest.java | 4 +--- .../subscriber/DocumentEventSubscriberTest.java | 5 ++++- .../subscriber/UserEventSubscriberTest.java | 10 ++++++++-- core/src/test/resources/sql/init.sql | 1 - docs/README.md | 5 ++--- .../management-project/img/project-sync4.png | Bin 0 -> 20924 bytes docs/README/management-project/index.md | 2 ++ .../README/management-user/img/user-create4.png | Bin 0 -> 21548 bytes docs/README/management-user/index.md | 2 ++ 12 files changed, 31 insertions(+), 12 deletions(-) create mode 100644 docs/README/management-project/img/project-sync4.png create mode 100644 docs/README/management-user/img/user-create4.png diff --git a/.github/workflows/auto-check.yml b/.github/workflows/auto-check.yml index 6d6889a..428f934 100644 --- a/.github/workflows/auto-check.yml +++ b/.github/workflows/auto-check.yml @@ -1,5 +1,14 @@ name: check -on: pull_request +on: + pull_request: + paths: + - 'api/**' + - 'common/**' + - 'core/**' + - 'dao/**' + - 'plugin/**' + - 'gradle/**' + - 'config/**' jobs: checkstyle: diff --git a/README.md b/README.md index e8aaff3..000f5c2 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ - [ ] Word 2. 邮件通知 - [ ] 新增讨论 - - [ ] 版本变更 + - [x] 版本变更 ## 联系作者 diff --git a/core/build.gradle b/core/build.gradle index 7d03df8..7c3a4b6 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -38,5 +38,6 @@ dependencies { // test testImplementation "mysql:mysql-connector-java:${mysqlConnectorVersion}" testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.flywaydb:flyway-core' } diff --git a/core/src/test/java/com/databasir/core/BaseTest.java b/core/src/test/java/com/databasir/core/BaseTest.java index 443cfde..75bd72b 100644 --- a/core/src/test/java/com/databasir/core/BaseTest.java +++ b/core/src/test/java/com/databasir/core/BaseTest.java @@ -3,12 +3,10 @@ package com.databasir.core; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.ActiveProfiles; -import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.junit.jupiter.SpringExtension; -@SpringBootTest(classes = CoreTestApplication.class) +@SpringBootTest(classes = CoreTestApplication.class, webEnvironment = SpringBootTest.WebEnvironment.NONE) @ActiveProfiles("ut") @ExtendWith(SpringExtension.class) -@Sql({"classpath:sql/init.sql"}) public class BaseTest { } diff --git a/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/DocumentEventSubscriberTest.java b/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/DocumentEventSubscriberTest.java index 93807c5..d0b085d 100644 --- a/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/DocumentEventSubscriberTest.java +++ b/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/DocumentEventSubscriberTest.java @@ -31,7 +31,10 @@ class DocumentEventSubscriberTest extends BaseTest { } @Test - @Sql("classpath:/sql/event/subscriber/DocumentEventSubscriberTest.sql") + @Sql(scripts = { + "classpath:sql/event/subscriber/DocumentEventSubscriberTest.sql", + "classpath:sql/init.sql" + }) void onDocumentUpdated() { var event = new DocumentUpdated(); RootDiff diff = new RootDiff(); diff --git a/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/UserEventSubscriberTest.java b/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/UserEventSubscriberTest.java index df13add..08961dd 100644 --- a/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/UserEventSubscriberTest.java +++ b/core/src/test/java/com/databasir/core/infrastructure/event/subscriber/UserEventSubscriberTest.java @@ -29,7 +29,10 @@ class UserEventSubscriberTest extends BaseTest { } @Test - @Sql("classpath:sql/event/subscriber/UserEventSubscriberTest.sql") + @Sql({ + "classpath:sql/event/subscriber/UserEventSubscriberTest.sql", + "classpath:sql/init.sql" + }) void onPasswordRenewed() { var event = UserPasswordRenewed.builder() .email("ut@databasir.com") @@ -43,7 +46,10 @@ class UserEventSubscriberTest extends BaseTest { } @Test - @Sql("classpath:sql/event/subscriber/UserEventSubscriberTest.sql") + @Sql({ + "classpath:sql/event/subscriber/UserEventSubscriberTest.sql", + "classpath:sql/init.sql" + }) void onUserCreated() { var event = UserCreated.builder() .username("ut") diff --git a/core/src/test/resources/sql/init.sql b/core/src/test/resources/sql/init.sql index b82c32f..dc77716 100644 --- a/core/src/test/resources/sql/init.sql +++ b/core/src/test/resources/sql/init.sql @@ -1,4 +1,3 @@ -# mail configuration REPLACE INTO databasir.sys_mail (id, username, password, smtp_host, smtp_port, use_ssl, update_at, create_at) VALUES (999, 'ut@databasir.com', '123456', 'smtp.exmail.databasir.com', 465, 1, '2022-03-25 03:14:27', '2022-03-21 14:20:56'); diff --git a/docs/README.md b/docs/README.md index 7deccf7..ae9518e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,4 @@ -## 简介 +## 简介 ![](databasir.png) 是面向团队的**关系型数据库模型文档管理平台**,旨在通过自动化的方式解决模型文档管理过程中维护成本高、内容更新不及时以及团队协作复杂等问题。 @@ -13,7 +13,6 @@ | demo | demo123 | 系统管理员 | | dev | dev123 | 普通 | - ## 特性 1. 兼容市面多数数据库:支持所有拥有 JDBC 驱动的数据库,mysql、postgresql 开箱即用 @@ -33,7 +32,7 @@ - [ ] Word 2. 邮件通知 - [ ] 文档新增讨论 - - [ ] 文档版本变更 + - [x] 文档版本变更 ## 更多 diff --git a/docs/README/management-project/img/project-sync4.png b/docs/README/management-project/img/project-sync4.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f2e6ef53d8e26edb28c70249cfbb6d273d9bb9 GIT binary patch literal 20924 zcmeIac~sL^w>M6;)jC022UL{QIz-D5XXd0$l#u-uK@3KK+M$SI+u|b3S{Y z{n`8MefI5h&h{JDZeOdXr?;`Cg zCY4vhXuM%bCfC>3qk78<`^p+5nM@50`-Ma5o~#bitL)RMdmN~H+tkrkM3{Fo&U0-E152|bvocE4zH{`esNi?r}q`_pQnE-49c^nX)*zcGC5Al zwBY0z(qtgcVkTDJWJn;b)YCh9qNIEMmlCIiF~af9c8^ZEFwS#z3bXfC%!3p8m;(wI ztxURPktiHTmqEj3%`io<=EolPZb`^Ttf+84 z@>>t6=~@wJFd^Y)JDJvl1FdJN30F008jnJOGcoKlXk?UZwe z#RC*gDM%mhlc^9V>gj!N@pJIkv4W#tk+-uqv45Vjw|lE*RRQuo!}z6Xvf;D8#_pG3 zuE|Ai*+XQM0Tc*wQh#+9Dy;8P&U+c4CCTc#)|BA}gSKf_D7&PGOc-Vzqcmm{HkyCG z4L0?n>d^pWM}e?quGGfz9@gW}neNV~9zSn)Kz5^TeY>ZYmHb#>jWHB#tRKRqc);TK zOKK-|re!qe;6uy?VEcZkl`nVW*iCbEH7HodpjCb>z~w3WX7jtJHQNve|J0v^BB*0R?dw4P zPlTW%fcN6*A_K$bx$;Pl_G;l57|MB_<{l0|+f*jE$1da^Y_J>s@l{Ub*I{hdSt8VJ z2qCB94RaezC0Bod7W_P(qv*TOe%6xLkqzZ86ttM`3Kj`c$g z(~Yw|GPe3@8zBKwrFruxpj2ON-OMZLaWfxbvtxeiDQw?D9xZn7%r)3iD-If#^{$J& zNaD}upaZFU9o5ac&Hkw)dWn~pyaRB#!%h2HTg6^FXFm(vHa{88jQ$M0lw1hHECi5` znZ)RQ34cw9KO6+hD z7T_$-gW0vv(NDTh7GaBtS72vIfCpc*%S$14{cxna{L8khl9L;`tR<~HU55&yPq#yyaA#{glKum%dEs=I3n%h(YasI`;QkS|&tuHlBE$_$O3(+;fw2CEbO8p6 zq&{zQLN81QuW(fV?6^};@4M&yJd+bvbstVXb~>EtL90EiJbmu&8DbEV(3sLVb@Sj( zr)X{4BOI{JfKiJt0WS8>tOgtlNL=!X6*{TwA$3vgUXYDGO~nJC4*YHvbyB%zc^s`- z^|Yhg=c)5&iI^=FDUyY2S$xUBP^vFtq2fLg%a6#AxImJV8AZ&m-Z5Z|&VFxn*I3VH zo;2*=ArmFPcKGvay=TtEjpF2R$6Zp^5e+32!A7C^z zU940W^7yCU-Amu^EzjtrWAx1T_nl?+S-5UE~*)!JzJfJ|gAzZhhPl8j^HB$7$K z#bO^2Gx;38Y3^4!8c+Kqj94cR1h$ED)$DSXew(Vb2r#^k1mJ{>4jDIW7Cwjzf1LZQ z;|A;E&9i$Q*o;1>-{Y1Quly2{NB}MCP_4A6r@E{ELiSqQpTTJ^!T^Dxeu8OL9(L5o zM^w6R&>?n+18F<9D^4izW!?5msK+X2kxRjt=>WI#W)xJMbfnL|l4_(kD)NMBvh4BL zk{3Lq1Q%{LBRb;AL3yO82M4*O*}G%-DSw^qKqK^2>KXrr-y?OJKTIsCqoxTGokRKU1$Y+}qGs-DqD&-H?q#dH}*`&3v+TuFj__XMF3X?HS*{q1c)` zD*AEvjhsDMtiOn+Hd6k=)1X1h(c->YLW_e72@3xT(eBxTe2k)~!mN#cyC zFuNq&Iz+#`#>Sx^{T0s8OQbq+IyJGoWei z^ zU%T?6lw~V!G|(tk(&lScV-{fA(P@lquCfOvCnK=4qf&@052;z4YF^Ej8_~2~K;q7_ z6*P%lO5s_s)it9B*qUIWBBg^sGP=Q*=SXh!LJ# zP@*;s5XS&f)oyGB<9M5D5|5;4H`^Hx59Bi-b_^LCQ+6a#~Md#PPQcKMQ;w z5I--?L{29ZVMAl;6Y?J#sFNB^iwsGO<8ex(P2^qTmt*u5<32*QC#j~|g{Dpp*Y&*Y$7QVHGQ3xI~Gg=F9_oC znn4>(jEr6zS`676Hx0)g1&=S5u}VT~c}xiU*pD&+n}g<{a3=5?sszp1>W>cXFrZ-P zgk%O*ghu!b+fe5DP2UVjuSrGMabU5qJ}L=jdDN@{l@;7VhFwZTF+nCAu%uUk(?v$~ ziU^-MP5D7273Sa`Nlub1Jl)~LEA}*z2smn^WAU=q!I#Y@F{vf=_e#$Q2YeBbl|lf+ zVwi^znug@US(*)$rU){!?$)zT^}wMev$*C7wFF01j1M6(36eT(u%Te+uyP8g9dUAl zU?wGkT@WRi&S3(DLjXl5L%^0JINHu`JjBveYh-|pk&<@8WX*uY2@?`V;VET)2E(fD zq3iwB&vAJIw@Pe`0fooVX~ep6wJfV#^`ab4THiLT5Z@rG@C-2IOe0OD#_LNp#pSBn zp~p1kFhUH|a2q-C`LGdyR?vsU_SgwuxCr}H*#MLn3P8;)R9i_Nf;l#I5BAp2&6SRp zg5NCYOs+QaX%7P7i1r=b6-%;cPQGxFbWLmYsk))K&8JR?N=2|Hwa%=tKUP7KY-T6Oi_Rg#ZQAsZrm-2bxG4Xqvm z7=6jLBWe&sMljv>n2zGQ!qAh|#dJUpj=40L-RnCnt6~aN{Bha<=t$l7h1l2bZ1n@u z^m+t3q;8;`sv0C|S|3 zM|k<Z`CjpI40e~jH6W%=F{k+{m!zqZqQxz6;d*B8 z4pRw^7B!>289g_Abt+^j!6KkR+%;N$)Yw!av68R|iMy_R z;R3@Fwisi(Gjq}N=eu819f}N!AABdPyba`OZ$c9Tz^frqqEp$(OOy82!AX1rw_ou~ z3?t6QD&!?%nv3BibX_N|asYqDXYit}da_#5rj0BoW zfZK!Xj#VBuC`=^z6{l zOM-i-eh$<;9DddVtqn#UYpbnZaK(%o0r(an^61sJN54yQtsI38s9v^)=UV568R!V0 zr1dY>bACz0xU+YVe%A1iD14jfP)~aqxA}Ij9G%1Ws~+vWwo!PMCd^_1WTAq+F0M$$QLJ_xlen?_SNy;;qc zz_BsB+fBV7Bvu2VE{teW7c}S7yx0nmv1ZAD7CFKtlqd3b3kRG>A@gN;+iEog&=AY3 zQ1cBivjYf58Ajd(gww7no`a~uZq6*WTfD(UauUxCj!}3^J-MQFr<-R*)o@N3Jm~sl z_s)Y9F5kf6BDhD!OEY%8S}|bp zW|!>Ywg+duHKkmx~(KZXAJib>Q){;c_D3&QO$oumffhB*9#dQEt7ZV0_D|mT^QP8 z@#4Ln{u74&6LSBLK3+JAFQ;k_JES7MziV@Bd)w%l_x?dgz_2b^P5JTPbb#G%NEMIL z6#4YL4WzUjukncKSvY2vqv{=LgwixbV#mcg95Zh4c zlRJ~)1@B#hsY8OaJ%|DqAhfD^ywfgS5hsjm1F5s&8ds^X<7G^9f+_CEdn0}nA3@v` zek=5-jM}|*ELAvdjDvv(k#AW!$Cv%a(mh#!x*Gd;^qd@s=kg9*qy1pob zKUcA%^Zn6fw{0^zmBQI!z5^y!ggKIn<>7}E;035Q{p{5ih!QjE(+;IoxJo=H%8X;|ZeH(&G(I_3jeH4tPk)683R5;f;t<-(t7KahudGJNlP~yBQ@PJpdro$pebvMyldNDBz4AK ztnt#+S4rW1M@K-!Btbg90;+~oZR z(*_gjU^G3KB}|GX%Z2E;`!HC#LgPtrC}LoXqU#f5j_{TP8`7kCgHi|07{*Axj9&y- z*N=D3N7aRWK~awOH{wIbP)gK+Ax`A1a8R3|Xf2APwP&kKr`9iD|G+Jvc5A|+17K+h zq_p;M5tL207W7{qe}>yDFP^T-HE(*G_x`5{lVY^dMz|{PyCwyu>+2& zdj@`aZQv!{@O0*}v(4lQNA!jHB~`M17Lf*Dg}I4iG1= z3s)NXk^DetDR6YDt-s-|z3**OT8BF?V!94QJ316kq(-F)JYN;cTX}=vo17vhGGMy1?XJnH62l?{5E3xnhXKslaFc(8#ynIlcdVFr>eIn zIR>uFJ%tumiUa9@#5ccls&ujT2nNq}Qnx&$DTP;Ivgc0F9qa?mE<_kmG)#b5KTGsq zz60Y++dO`yzBGhg$6 z)#iL{1e?7&)Yniy+ihkZnOJOtz5%sV@VZ z0lijE{DI7Nf_KP7H!`WTzN`lryp=P*8}U-}DnOBkcN-`JZG%KC7Fv% zo@Y50AYKMm5s+s&OHEmCRU1916%!q$f?82)T6S(&?GHiVLaMEuagH~yG8@d%emm>G zp?B*tPp8Gzn_uGxMosHZ7EPjT{rS5ibJqB}Kkd=|@Jgh%YObj5FxAdrARvjGTM*ly zsy16Flg+cU(-mW9-Kl5tJ1t&Y<84GP0ALreklIcB-fT!MlwPL}-z+|~+|(9stuHkg zP@8qfQce^R-%NJ73Q=#fQUG1uS2x@EA>raZ-(R-I%h4x#rEv<~U zF#HuH@2l<0MYBMrYdX6ms*k9*efQ*k}FXW83}? zuvHw}MFq+rBLQO7pp5k7H{vsZXK5acH6DrAiVS$1&HTjO%GI6D$7^V!qmayqjjxyM1=7UjsHl=ZsJU3T#afZ@-T+-I*@nZ zYFuOy9#$3>IQ>SD=GMhJHf%Y|lt&Mq$K@HrUJpK&T_;$fHZFNt#^Z3b{5WVn*c=j{ zUo~g>9oK|t8Gn*zD=6{qu4Gj+rNeT$cCl^aWkBR|VBSR^F~-P!`Bb}JSUF!EbkGE{ zE2kt>vP4-fvcuVFS+g?-(gcPPhdzKHtybDEVws-YQln*f|9b{C|1yl#d8x#xd;gQ& zmj6w^Eb#^8k5`p zZV_)5Z>KB^Faw)nAy@Kh5ZJF+P*~{Q2fS|2s`zp>f4mVXW!J4`SVp1cv#oGKvAGkv zK7MVU^r0>oXxTlBXDDB;eRG9PtW~ZA- zQQS0a${97ZqHxQXlDLF}4M8w&T4?rfJ@G^j9o_hH$M+~?=*t?o-$iZ0 z_|kRdf$v+FD@kCJv5BNh4Rbe2Q1_2UO^(`cXyZKYiLnx*bkc8kRA&e~%hR)ckW^1@ zqe`(G`GiGZ?mu}{0MivSWvKyYgm$X=nDIr6Iz|3V*sJFM4Ft5d7&JAzf@yj)fb(h{bYAq}T&f1>2!O!tosFcyt zLcFl~6ns5ZWv9+))@7)q*L4>EV%gOJ-&3T12f9xjDcc~~j9MaCZ@ZlQbp}g^&>2Ux z&8JU&hm>uXE@B*ydkk^;@yiu^k3pR_v}g0#>uJoHTGvO*^<__s)4$)qzpkw62vAuW zI;0ZbL==9zT;u+I2R!l_Xn8(}G9EjWH@~M@v_dh=~c(AR4@5 z2TeXVy)NMos)!LLE!W%c~Rwt_omx);(;Vx=g$jt1Xu z9J(!^mc1tMs6WB;IzKuA(!NKFTJY?u*q z*3HHz3aM0mk>!DRCPme_59etdaK*4KkhL6exMe0jFD~~C=?RdkYQ-FxqRYbU$h~*r z`?}#Ah!ZxVv$lvV5r%mWQ)`Q{Z&!kTvTf6ydIhB8^No=ey=x?X*L5#O(f}RCF)Ff$ z<8sZ7H!waR0b`{b+1Viac;B8_LxTb1kDz(`h{UbpZ>ZQgaU_4&&FKYeR;Nd|5O#hz zZ=jhzJ1sx(Vl2Zrc4nNl5{_WSeSNs?hk=Y4^@{Gt0%Iz=A{pwZ0Jp8;>Dt|AuGwQH%g!J>S;_R@xV-27UNUfh1a=2un#7(v@J|Q8Db_iL{=nSTTVz5cD1Hm zK~s0r&Wu`;o_QAm>h&&f{{@H)_tti~z`U&wCwwhQav|n4yfVAvb&RGXJ@QqWEbmpX zbDknSbRU$|Io?U>nTD{qKo*kR^0-GD2I%MK0kt^?)0S&5Wi>uSF|uci(mdzrm7`!) zZStft>V~`tn2aKiPlim{tm0+mW1uOh78l4orn&d7Ic!rrRmT#S^EItVBkwqJOKjM$VN6l)U@qImFk z_*o)ejkcyO+^Q~OIGlB^55FHoTrGHEH8jZ4P*w!6aK(r07waZ+HXk1K7kw0&9 z8y&=lryi^|lReG#Q$Ng>f&!J#N7wsRZUa(sCO;D3rkDn{ff2%IJvP&TQ?gyp1!Ya! z+@=o{Zkwp?iy!u=D+nTU%rMc%1&7J%Aoq}kpyA}Sapd3L@j?lQ2a$3 z_ur1-|22>Q%h>OqSN|y_|G!ml-+&}yxiWYXf_ zHcg?q*Q8S_3bp~Dn&JnvG0@`Gh2~bPHd(jPJ zgv3ibe&Sj9N(Fq*bZ~A%X4r(OE}3={yfBXqIC=KT9I0dG2gF z=YBnT*t-O7_AS%7_~lAeAt*e`yaIKEP@X^@>`2;)ZIl-7Pj)eI9U;dwXOz_Yh!&TQ z0fq62fGH4=O;vo$qVzDKAhLzZl_(!UU?*+>JfR|2_Rqag+#ZkjnTL3Tn@$|xlRvTo zoza-Crq&gs*X@U*Jx;g9IM=`R%HB?P3Pz*JCP^8!tW;J&V@{ZCKRrfQwk`h3kKs+7w%9KjS<1Bvl}{GZ=3n!; zEZTX9tQ}+5xYbhJAJ$lACJ|gnoX>U}!lM$#`Fvols^Y8g!=?_Yz`qn5HPi>w&qbQ# zgX=yI%<^CDgtkE&Iog$J&+XycdUJQJC7eH&$rBuXgeW+BJ~SXf`L6LlsO-M_7NN`uUI2j)ELF26E@_bQt=Nm)UNIA~csame!JE583|g+C&Oc}Vu6+&grW zwELRo#E&j8qN}hKr5L39EzPW114fy#noD5DCsS<$-=`7bb)LtIEi~n2KCu;%iO%W= zPMf|(2%Q9ZP7T6rgQd`;DZ(I`eiWl>mCw*iwWzE#5F3D8F+USN>-4(36d+HKDvPp# zYOEsKrsGYesMLCh^+f+WSxMnEV<`7izQDSur@VmJlL$spU$Ul+d}lifb8zRt0?mPX z{v2l2VXHK6l-EUiqptoOFwo_5iC@+@-9l?nRDGNp2>;78w++tBq$s0nW1jV3F@bN< z;awKp8Rhl9TxIcz8bWnD2~L~J7-;od2bUiMNhXhroe8j9pui`S_ZCz9GV819*-&fr z#<2!ep_iqJM%SNBh8yw7{B5wF)sX0k96ySqpErZjbJEHTq06Tjq$y|(DKB@Wmv?l( z2%0iq&o~xQceBa`)*{#)#XUlh*RqoM{2|F565~;gL3bljIPcrRQO*B6-fV^^-OccIM@Yle?qtEYZln!rP*vHTpR)-HapuYLFzN@& zZR)V^Od0D@1mHLS2|)LNv~@;H7D+dyhkD$muI5vHMoWIyug!*eqnEnePe&2XSC{nW zE(8hKDL*TVgMDEwqtCW;LzOG93(lWBP-afC05`Sk?yN4+^-c2Gz1Or;Lf;Ybrr>C4 z+V!R!sbDW&dq3o@4zBWrH&17GB)#I&HyIlH$X~eu-i8i^2S`oZpi7sE@au39{bonZ zBqtw5OUeR*u=5?eTKe8shlou{8ydi(dgK)`nzS>=+4sAqGCsH$R!ymIpF5ymevNl+ z#R8pJ!=+Fl^BZ7&CPn7oOA=X}{PIfWM8!a3g4tSol1qO-3rWbt7C(+1J8P2b`Kf4 zrz3CdfH}p}t!ie+%l(_)j_h%tF290yrArvTQ-LiW>Ch<~++?FelON8omNnAyZKuW6 zD+ATc>dM?GXpSq*PU&RhXJa^&$a5tQl!+c3xvu%h`SKfxILn?4BHMTPI%^-VhF#k6 z<3@a5F#mXfs`q9$m{*-v#-1Hs!d&l7!6O2+U*7Gw%g8O8?|*ccYPDye^8LL3Q?Y}t zqsxZ(+4KVrsew1%7lQojI*ET?eb-(@caiSDIZPku>AkW3^Ai96drx@X6*Q$*r)z;H z2n`uGe!oAf>*8`H_n)W#n;3XbqlgX4OwO!&oD6af)5?Uy>M=2|+UsI1_o8H>c(McK zOHm5s8&fPaoh+eQm~E$4NrXrM8j(|*7w0HdMn`fM2PRXb&y%6Ch!KhKh~B2(uRmLV ze|%KOnmh_bH$CxVeHOBZ~~O?IiuTUp4&N^TBs# z|7a}Gap>8|wO@q&XNg$bbTu17Rl>gh5D-zqaJVJx#=39;kc!6$cW(E_JEPzDU|TDe z`cJ0o8WzO4{(eVW|Ce1!>wGd(*lvr@4qGIf5$eo;vG~Ra5Q)_MHaQ&2;f=2(={n$W zcQX!;-*KVYP&NbGhs(jSoAdR5x%NlHgey14tHwdp+KxWWUM zG3Z3Y)-+L?pm@Ijq?5jITF^F1H*7Sj^=K*U#0}v#cTP#lr((czse^EpUXK0$hn}W_ z5UMTp4PR^kN~PvU5_pRwW5cw`;_eAhZ2r(kVH_UsgL>;(;{)fp#mwSpP&`Wckgk7* zu%q*D)6Dyxr3YF4Q;{(KYrXJZ_W>fVFqV>w4HQZt0Dz z_!Ea!$yD2su|@GtGSB_uN_6YNdpoMC$Dd&5CJ?k8IZv@G9nre-%%{)iUS_P!#{{;> zQjz&!rR$Mo-Z+WSK?$nv%&`96;-^21#`e9(rRH?|eP`>)tI&$y@N`uJ*>1196MrF+ z?@&}OO41dsf-ZWfPWvS=$13bIy?t9NQPM5d=#d{X)%k}VcRtVly|+}1o>>=x^Cp)( zmFF8`chEPZqHVI;e#74SR2tgDxW2t$_lY88+HhLot+bhBCN+3+x08N3nlRExAQR8e zg#o6RbPCKbBlHworff zn^=Ss+LUzxbdKxlR`?7@K8|>KlrD5GbKb_T*9kw0OTJkcd_U~Dv|yBtlZA!u{>yYX z9Bdf#k9?u{!kxS-7g`1_7i`V4r6jjKJch?fYV4(k*I;DT!bhu|&13YQSN{S1_tv_$ zS?BKlf!sNuuJuUkr|)ih?bPF*Dq8uK)t{|H^nQu?ANh39sVGgyJ~{u@{qFvowB7q} zISuNhxy~i{K5@UU8I9iOI)&GLyuS6Wfsfu{9bM>#?)?89daX5>`>}Ha@zc+)>)zIL N_{RBE+1HnT_+OH;($)X~ literal 0 HcmV?d00001 diff --git a/docs/README/management-project/index.md b/docs/README/management-project/index.md index 7519ed7..0826e34 100644 --- a/docs/README/management-project/index.md +++ b/docs/README/management-project/index.md @@ -99,7 +99,9 @@ ![](img/project-sync3.png) +如果有新的内容产生,那么该项目所属分组下的组员都将收到邮件通知 +![img.png](img/project-sync4.png) 在该页面仍可以点击同步按钮同步文档,**但 Databasir 会自动与当前最新版本的文档做对比,如果没有结构变更,不会创建新的版本内容。** diff --git a/docs/README/management-user/img/user-create4.png b/docs/README/management-user/img/user-create4.png new file mode 100644 index 0000000000000000000000000000000000000000..2b6064c2280ff1feebd2e4070bad44852c598ed0 GIT binary patch literal 21548 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