Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b02e210c68 | ||
|
|
e6d2334753 | ||
|
|
9f4ce1e7d1 | ||
|
|
efd0dd2ac0 | ||
|
|
b90a390d5c | ||
|
|
2f495006ea | ||
|
|
dd09986f71 | ||
|
|
41873de29e | ||
|
|
92c9e59c1f | ||
|
|
d5101b7568 | ||
|
|
e7888c5265 | ||
|
|
ebeb768a53 | ||
|
|
228156d0b6 | ||
|
|
1607875a08 | ||
|
|
707d0372ba | ||
|
|
1317e5a921 | ||
|
|
1e00611792 | ||
|
|
22b7ae6cdc | ||
|
|
684818def1 | ||
|
|
5ee0328063 | ||
|
|
ab98e5f6bb | ||
|
|
84a8a522e3 | ||
|
|
133a59c71b | ||
|
|
168aaa227a | ||
|
|
74e776ba21 | ||
|
|
90eff9a596 | ||
|
|
cd86ce08cf | ||
|
|
7e20bf5b75 | ||
|
|
98f6b1ff12 | ||
|
|
a410b15e30 | ||
|
|
72a3ed9068 | ||
|
|
1be0ff13db | ||
|
|
1216f075ce | ||
|
|
99e1f005fc | ||
|
|
bf69b16f1f | ||
|
|
36df6d5c8a | ||
|
|
a9974b418c | ||
|
|
de6fbe7725 | ||
|
|
172edaa227 | ||
|
|
bac50e10f0 | ||
|
|
b9c7e7e9af | ||
|
|
8c461ffb86 | ||
|
|
1934a75eee | ||
|
|
90cdeeff0a | ||
|
|
6d45dd4491 | ||
|
|
b22bfdf74b | ||
|
|
6dab60d9e4 | ||
|
|
657bf08fb8 | ||
|
|
ff1d9e20d1 | ||
|
|
d03553be7a | ||
|
|
5dc52446f3 | ||
|
|
eb517e6df8 | ||
|
|
621d66fb57 | ||
|
|
964d211260 | ||
|
|
c83d997f2f | ||
|
|
7a9a45b065 | ||
|
|
700ecaef4a | ||
|
|
19c8fcd775 | ||
|
|
bcd6f3f429 | ||
|
|
92e531db02 | ||
|
|
f81c546069 | ||
|
|
68f41dd5c6 | ||
|
|
1be9dd4033 | ||
|
|
0c6776b713 | ||
|
|
9cd8492ec1 | ||
|
|
6df5d14a60 | ||
|
|
91881ad6d3 | ||
|
|
e011ad02a5 | ||
|
|
fdf5d12196 | ||
|
|
8af25ba0c1 | ||
|
|
2ba4f79a46 | ||
|
|
185e0f61e2 | ||
|
|
e84f4cd35b | ||
|
|
eef20dc5a9 | ||
|
|
0b65dcd4ef | ||
|
|
ba58b140d4 | ||
|
|
a0cd6c6a88 | ||
|
|
776e092a89 | ||
|
|
fe6e21a08b | ||
|
|
4e2fd404c0 | ||
|
|
ae9d324f8f | ||
|
|
6f8fb6f49d | ||
|
|
52d6017ce5 | ||
|
|
9e58717321 | ||
|
|
c3a334f8df | ||
|
|
72a4f93e4f | ||
|
|
09e13b2f37 | ||
|
|
60078c37a3 | ||
|
|
1cf9ced260 | ||
|
|
50cf6489b9 | ||
|
|
621a48c642 | ||
|
|
c841c82220 | ||
|
|
22b89265d6 | ||
|
|
e2c20b5022 | ||
|
|
2dd7de73b9 | ||
|
|
bd227e03bd | ||
|
|
413202899f | ||
|
|
bd2a484c2f | ||
|
|
5e8a75cdf9 | ||
|
|
d8ed75dbfd | ||
|
|
4392b83a98 | ||
|
|
256d1e55c8 | ||
|
|
c2dcfdb96f | ||
|
|
46c7562ed2 | ||
|
|
42018e69a5 | ||
|
|
56c6fc6b72 | ||
|
|
c0a6ff3029 | ||
|
|
79f3db5ea5 | ||
|
|
b5327cbe17 | ||
|
|
217e9ed0b1 | ||
|
|
82c7a94023 | ||
|
|
1a1b63f92a | ||
|
|
6810fa6ce6 | ||
|
|
8876c4241f | ||
|
|
190574b3af | ||
|
|
fac1857579 | ||
|
|
acedd38899 | ||
|
|
e3bf110f1f | ||
|
|
638d597061 | ||
|
|
588aa88144 | ||
|
|
c918407eb3 | ||
|
|
f87c981974 | ||
|
|
360ec29963 | ||
|
|
657b0f82ec | ||
|
|
2813d82996 | ||
|
|
b13dd2abc2 | ||
|
|
a5a5503821 | ||
|
|
cd2f48aeb1 | ||
|
|
88e515093c | ||
|
|
9ef5a53790 | ||
|
|
da530824d6 | ||
|
|
ea693396b8 | ||
|
|
f4cba74bf6 | ||
|
|
8b68ea6465 | ||
|
|
69046a9429 | ||
|
|
f3f8c1b7e8 | ||
|
|
042888f5d7 | ||
|
|
ec197c68b8 | ||
|
|
026c0d2389 | ||
|
|
032583e280 | ||
|
|
57b3771450 | ||
|
|
4dbfdd8740 | ||
|
|
f23fe38e0b | ||
|
|
321366489d | ||
|
|
6d5b1673e6 | ||
|
|
8be65ceb7b | ||
|
|
a8384a8826 | ||
|
|
9645bb3911 | ||
|
|
847059b717 | ||
|
|
08c776e308 | ||
|
|
716ef2f0db | ||
|
|
c5d5fbdafd | ||
|
|
9a8d520abd | ||
|
|
296befc881 | ||
|
|
00d3aaa1fd | ||
|
|
64399901ad | ||
|
|
0aba9703cd | ||
|
|
f8192b82b8 | ||
|
|
040e988323 | ||
|
|
849cd65bb7 | ||
|
|
382a35c25e | ||
|
|
0c22b78cf9 | ||
|
|
7d1a08f22f | ||
|
|
bce53e02e5 | ||
|
|
606b5287be | ||
|
|
b278265005 | ||
|
|
f9d881ffa6 | ||
|
|
6fcc4ae6a2 | ||
|
|
67d3f14c3d | ||
|
|
947dbf6d0a | ||
|
|
173cfb72b2 | ||
|
|
2e61eb0990 | ||
|
|
3417186df7 | ||
|
|
772c6ecd84 | ||
|
|
efe7f1de6a | ||
|
|
b51eef12b7 | ||
|
|
6cb71c9ae4 | ||
|
|
2e098c487a | ||
|
|
e592dfde2a | ||
|
|
7168499521 | ||
|
|
f5f79a516a | ||
|
|
44dc78f4df | ||
|
|
25c3142586 | ||
|
|
a44424d5fa | ||
|
|
bb4777578a | ||
|
|
2f4cae35bd | ||
|
|
a9bfa8a71d | ||
|
|
9e3f5f53cc | ||
|
|
8b354aec1d | ||
|
|
6101e72552 | ||
|
|
898c7b27df | ||
|
|
4d7fc8be52 | ||
|
|
f819841430 | ||
|
|
5d008f0525 | ||
|
|
b0d4200aa0 | ||
|
|
167bbe100e | ||
|
|
4e7422ed4b | ||
|
|
867b2a5149 | ||
|
|
2cc8f5f272 | ||
|
|
9be0fef470 | ||
|
|
b4759e776e | ||
|
|
1d8dfc110e | ||
|
|
6ed615a1fc | ||
|
|
7d12dc3b80 | ||
|
|
72a102aac8 | ||
|
|
17883fbd84 | ||
|
|
7a7782a350 | ||
|
|
b649094d36 | ||
|
|
8c45dea975 | ||
|
|
509c696aa3 | ||
|
|
866db40f48 | ||
|
|
9169d3d4bf | ||
|
|
f1e48b719d | ||
|
|
081bebaf80 | ||
|
|
1fe840fcac | ||
|
|
6cccb5da31 | ||
|
|
6c3f0a4606 | ||
|
|
d736f4266c | ||
|
|
33c88ceb68 | ||
|
|
a1f8e010b7 | ||
|
|
d924a7fb8d | ||
|
|
95905cfd5b | ||
|
|
c0122a72c8 | ||
|
|
ff838e43df | ||
|
|
c6d7a0a8da | ||
|
|
485c654c6e | ||
|
|
265bf61adf | ||
|
|
0bcabd59d3 | ||
|
|
6bda0d4891 | ||
|
|
97ddab93af | ||
|
|
6322674d98 | ||
|
|
f8fb78be11 | ||
|
|
15c37b620e | ||
|
|
28eb2c0b4b | ||
|
|
535c7eeef8 | ||
|
|
f0ecc95ca9 | ||
|
|
0e63914ab3 | ||
|
|
9b64acb3d2 | ||
|
|
0ab5e0d4ef | ||
|
|
4cb0f87dfd | ||
|
|
fa64e8b38f | ||
|
|
fb6cca415d | ||
|
|
b757d26933 | ||
|
|
9f64f5b8db | ||
|
|
a0aa185518 | ||
|
|
1f53baee8f | ||
|
|
6a79d0a195 | ||
|
|
8fd5efaa84 | ||
|
|
53cdc80df2 | ||
|
|
38d4728333 | ||
|
|
b0cd028ff8 | ||
|
|
100f59f78b | ||
|
|
23ea201325 | ||
|
|
441cc57bb8 | ||
|
|
a361fd94ff | ||
|
|
acb0eb2141 | ||
|
|
315d1a40a4 | ||
|
|
92dd13e72a | ||
|
|
0d39e791c9 | ||
|
|
53760dbf59 | ||
|
|
dd6f6cf1af | ||
|
|
5e96f0fd61 | ||
|
|
98d703645c | ||
|
|
cead7b0a6f | ||
|
|
139d9e21da | ||
|
|
d81bd595aa | ||
|
|
ed211a2bbb | ||
|
|
e21911b1c6 | ||
|
|
d3d1eb3355 | ||
|
|
d8381918a7 | ||
|
|
e9af0c3226 | ||
|
|
e5012ea9c6 | ||
|
|
306269af5d | ||
|
|
6563067892 | ||
|
|
8bae604129 | ||
|
|
f451f89d38 | ||
|
|
61413c1902 | ||
|
|
f88ca891fa | ||
|
|
445e89576b | ||
|
|
1a1734cf5c | ||
|
|
a0f7d0d50f | ||
|
|
c4dc839d7c | ||
|
|
f5c1cd9df8 | ||
|
|
177653370a | ||
|
|
6bf522da0f | ||
|
|
922603975f | ||
|
|
7284f98c79 | ||
|
|
8bbc6ecdb8 | ||
|
|
7cbde91140 | ||
|
|
5bdff56b8d | ||
|
|
96ce010635 | ||
|
|
47fcf87ae4 | ||
|
|
1257ec9969 | ||
|
|
cda7d7de90 | ||
|
|
e7981c7f11 | ||
|
|
ba87cbecfd | ||
|
|
bf6b963c45 | ||
|
|
9f8acfc51d | ||
|
|
8cf316b853 | ||
|
|
55817f685f | ||
|
|
35d585251a | ||
|
|
242dd48cbd | ||
|
|
30134800f3 | ||
|
|
e517fdf6bc | ||
|
|
b00ea3cd99 | ||
|
|
c0b6c8726e | ||
|
|
52c550e3fe | ||
|
|
57e72ce598 | ||
|
|
ba3deb5b9b | ||
|
|
fb0022923a | ||
|
|
ccaea82341 | ||
|
|
1a143c9e2c | ||
|
|
23d15bde8b | ||
|
|
49c55b41a2 | ||
|
|
4f822c8021 | ||
|
|
c3801165a5 | ||
|
|
fdf58f2d85 | ||
|
|
9a3b3530a6 | ||
|
|
b280c91013 | ||
|
|
95f6a63c70 | ||
|
|
96965797f6 | ||
|
|
7b5d96c5a6 | ||
|
|
00e2480b7b | ||
|
|
f98e3fa1fd | ||
|
|
81d8ea56f8 | ||
|
|
654dc0e2d7 | ||
|
|
b4e4b9d498 | ||
|
|
52af8d3e49 | ||
|
|
546806c40c | ||
|
|
ca7e93cc2c | ||
|
|
4ee76ba8c9 | ||
|
|
5d7ec14076 | ||
|
|
88f033e2a8 | ||
|
|
2e878a3fb2 | ||
|
|
c6e7ce03cc | ||
|
|
c45fb47b08 | ||
|
|
d39fe78239 | ||
|
|
0399d0be15 | ||
|
|
19237fe247 | ||
|
|
729c370125 | ||
|
|
636c224bd0 | ||
|
|
ab25238f17 | ||
|
|
b9ffbf73e0 | ||
|
|
23cad47f8d | ||
|
|
5fd308aafc | ||
|
|
88bee071e5 | ||
|
|
1fcb1f0228 | ||
|
|
9544ce1d18 | ||
|
|
8cf15ea17c | ||
|
|
bc10fa5c03 | ||
|
|
1d5f5a2067 | ||
|
|
70a7c42be1 | ||
|
|
d0e6090761 | ||
|
|
87ba177ff3 | ||
|
|
0511554db9 | ||
|
|
026292f07b | ||
|
|
18d507780d | ||
|
|
3aedae1436 | ||
|
|
9cbb9a3d24 | ||
|
|
b173fda116 | ||
|
|
d9ccef94a2 | ||
|
|
eff63931f2 | ||
|
|
3ec676194b | ||
|
|
8030bc708b | ||
|
|
fd78faf0cc | ||
|
|
bfcdcdc4f1 | ||
|
|
a75273a714 | ||
|
|
c9cc5257c7 | ||
|
|
3b4fa40253 | ||
|
|
9ee896aac4 | ||
|
|
01cb1839f8 | ||
|
|
1eb07608e9 | ||
|
|
8e16e000c3 | ||
|
|
64d7c2c62d | ||
|
|
e028ebc152 | ||
|
|
30051f3257 | ||
|
|
c4a52687b6 | ||
|
|
a06c13623d | ||
|
|
b303693ae8 | ||
|
|
6b012193e3 | ||
|
|
cd6ff48cc0 | ||
|
|
dbdea181a9 | ||
|
|
721a5da895 | ||
|
|
8578acd915 | ||
|
|
f3c95d9643 | ||
|
|
5c5b61c4db | ||
|
|
760e38293c | ||
|
|
dcfef154ce | ||
|
|
10b2e91e29 | ||
|
|
4f415f9768 | ||
|
|
93b5bc6bf8 | ||
|
|
60c2d0e23b | ||
|
|
c44710c9d7 | ||
|
|
37e034b3ef | ||
|
|
adb8fdb096 | ||
|
|
22cdb86aab | ||
|
|
576dc55615 | ||
|
|
f8fa1cf6d6 | ||
|
|
3bb9f0ba8c | ||
|
|
91eb60a363 | ||
|
|
4457a6a6a1 | ||
|
|
6f8cde67a6 | ||
|
|
391db5131d | ||
|
|
62a61b403e | ||
|
|
e8f108154d | ||
|
|
ccd84b7c2a | ||
|
|
522f3458f6 | ||
|
|
7efed95ac3 | ||
|
|
754cd223c1 | ||
|
|
a0b7dcca64 | ||
|
|
8876183981 | ||
|
|
feb3093c6d | ||
|
|
6f96f67655 | ||
|
|
3be2221948 | ||
|
|
7d0bbf30ec | ||
|
|
9933a9a9e5 | ||
|
|
227f047810 | ||
|
|
95ce9e976e | ||
|
|
4a645343a9 | ||
|
|
3d107ea618 | ||
|
|
19f5e41b09 | ||
|
|
f7eeefa3a9 | ||
|
|
a8f0f5bb4f | ||
|
|
44d40f0785 | ||
|
|
d0b2752fea | ||
|
|
8e0c080faf | ||
|
|
6410ae5f69 | ||
|
|
a60cbf00c8 | ||
|
|
3e7a220225 | ||
|
|
9026f46220 | ||
|
|
fedbe550db | ||
|
|
2b45a1f7d5 | ||
|
|
31a91409a0 | ||
|
|
9279393dcd | ||
|
|
20caa63508 | ||
|
|
6984e97f8d | ||
|
|
95ffd1b9a1 | ||
|
|
4c5639bee6 | ||
|
|
d4b72e2d89 | ||
|
|
0452828cc7 | ||
|
|
007c4840c2 | ||
|
|
2b04f3ca1d | ||
|
|
3706c3126a | ||
|
|
1ba9f005a7 | ||
|
|
c3d6f8887a | ||
|
|
439d6cb28f | ||
|
|
b0e7847962 | ||
|
|
a946c70869 | ||
|
|
5866da8194 | ||
|
|
ad34ee2699 | ||
|
|
e03d65d547 | ||
|
|
b5c8692f34 | ||
|
|
f96977733f | ||
|
|
33bd02d337 | ||
|
|
ab01dde2ba | ||
|
|
dea5335ce5 | ||
|
|
288fd7ed12 | ||
|
|
c98cea2ea9 | ||
|
|
056aff4742 | ||
|
|
6357672387 | ||
|
|
bdadc77235 | ||
|
|
0cb75bdcab | ||
|
|
bc3052ed1b | ||
|
|
df2f3460f0 | ||
|
|
bdf4f39b2b | ||
|
|
fff192eb95 | ||
|
|
c47390e643 | ||
|
|
fd944280f1 | ||
|
|
fa71b06874 | ||
|
|
591308fbe8 | ||
|
|
a03b513389 | ||
|
|
8857f0d179 | ||
|
|
2d2aa45ec5 | ||
|
|
ba5b66ff4f | ||
|
|
285e3afeee | ||
|
|
b3cf9ce185 | ||
|
|
18deb16e36 | ||
|
|
1a1266a5d6 | ||
|
|
7cdcaa0533 | ||
|
|
d5f6802e5f | ||
|
|
bc1a2a0b4d | ||
|
|
7cb1d74c05 | ||
|
|
02dbb20b41 | ||
|
|
6b9e3f5d1c | ||
|
|
5f4db94179 | ||
|
|
de712b0805 | ||
|
|
fdfd6c7792 | ||
|
|
c6739ebd6b | ||
|
|
f673e68677 | ||
|
|
85d4473af4 | ||
|
|
45cafd2cff | ||
|
|
d5ac441ab7 | ||
|
|
8e372f194c | ||
|
|
55ad67ac52 | ||
|
|
cc999ae5a5 | ||
|
|
f66bd4bcfb | ||
|
|
dfaea944f0 | ||
|
|
ff287f32c5 | ||
|
|
a46f99d360 | ||
|
|
d98ee76b8d | ||
|
|
29a526626f | ||
|
|
6509e45b6f | ||
|
|
2fb5b26adb | ||
|
|
24aefd2c7a | ||
|
|
b5b0538fe3 | ||
|
|
2ab2d6b57c | ||
|
|
bc83955418 | ||
|
|
8f8f8ec79a | ||
|
|
6690b16f8a | ||
|
|
16b9b103a2 | ||
|
|
b1f70b02ff | ||
|
|
2a1394ce1f | ||
|
|
908d7e88b6 | ||
|
|
4e3ec91d23 | ||
|
|
36a71dc7fa | ||
|
|
6179638fee | ||
|
|
57e1dfa7ec | ||
|
|
2aa881d143 | ||
|
|
e9f3747969 | ||
|
|
5c30695d66 | ||
|
|
301920747d | ||
|
|
7c5554ea31 | ||
|
|
6c7bc1c815 | ||
|
|
dd45f06d50 | ||
|
|
d6a9f8a06c | ||
|
|
9647482791 | ||
|
|
ad5bb0b190 | ||
|
|
b9088b0afa | ||
|
|
5edeee8017 | ||
|
|
95466b9d6c | ||
|
|
1c44cfb714 | ||
|
|
f833cea0dd | ||
|
|
2dcaf0b4ed | ||
|
|
0e786c519e | ||
|
|
3b20cad5bb | ||
|
|
afc28d95cf | ||
|
|
9edc1d225e | ||
|
|
e5f2506663 | ||
|
|
5ec6faff13 | ||
|
|
3e6bd29198 | ||
|
|
f2036164d0 | ||
|
|
1c458b82cd | ||
|
|
b85d8c1446 | ||
|
|
0ac006fde1 | ||
|
|
1e6fab92b0 | ||
|
|
099577959b | ||
|
|
c2b7e521d3 | ||
|
|
36aaf38379 | ||
|
|
99c688f894 | ||
|
|
f4761f55f7 | ||
|
|
e18a8bf620 | ||
|
|
7c6fdcb12e | ||
|
|
f88c89f3eb | ||
|
|
5949696ded | ||
|
|
f724578463 | ||
|
|
2324337149 | ||
|
|
2dd009eb7c | ||
|
|
92bb931b0a | ||
|
|
eeee45e57c | ||
|
|
10ba029980 | ||
|
|
fd65f1b644 | ||
|
|
9f6ddd3cf9 | ||
|
|
673b5ea5a1 | ||
|
|
84c024f6fa | ||
|
|
3e0ade5a59 | ||
|
|
db23330939 | ||
|
|
bb24c445e6 | ||
|
|
b44b06591b | ||
|
|
b475be93fa | ||
|
|
3e47abed8f | ||
|
|
f0185fbe7f | ||
|
|
5f689a56dd | ||
|
|
0d1e3f36e1 | ||
|
|
29ccdb3242 | ||
|
|
0546e79aed | ||
|
|
5ee403fec7 | ||
|
|
5a3fa59741 | ||
|
|
60497df04b | ||
|
|
f143aa05a3 | ||
|
|
ee0687ecd3 | ||
|
|
e612140473 | ||
|
|
e384c9665a | ||
|
|
30d2d1b23e | ||
|
|
ed2a73f7ff | ||
|
|
b5e5f8ac4c | ||
|
|
102e0a9839 | ||
|
|
edec9adbfb | ||
|
|
c9345ad618 | ||
|
|
fc4b419987 | ||
|
|
475e3689f7 | ||
|
|
c90508cece | ||
|
|
a85d907351 | ||
|
|
9f31ec115a | ||
|
|
fbbbfe22dd | ||
|
|
26b279cc8a | ||
|
|
3ac271e702 | ||
|
|
4ae9132b59 | ||
|
|
3fa48f26b8 | ||
|
|
00e17ef152 | ||
|
|
ace73ebb60 | ||
|
|
5931162556 | ||
|
|
053b1e3d69 | ||
|
|
082fb165d3 | ||
|
|
a02ebe192b | ||
|
|
8ab78dc40d | ||
|
|
6ecd7b20f7 | ||
|
|
48a86f6c38 | ||
|
|
b742487dc3 | ||
|
|
089f890f2e | ||
|
|
1f0a2fd150 | ||
|
|
715839d295 | ||
|
|
1bcf343ceb | ||
|
|
e99fc02f9e | ||
|
|
c0a1429664 | ||
|
|
cc1ce09b73 | ||
|
|
25074e46b4 | ||
|
|
cee0945a78 | ||
|
|
24b0c2e919 | ||
|
|
c56aef335b | ||
|
|
097b630738 | ||
|
|
f351b10ed0 | ||
|
|
1a02d13a28 | ||
|
|
bece59d4b3 | ||
|
|
30398219f4 | ||
|
|
8545d846c0 | ||
|
|
6d8c4bdb82 | ||
|
|
496acf5598 | ||
|
|
36228fece7 | ||
|
|
794c7cb335 | ||
|
|
9c9766ca0a | ||
|
|
7374997425 | ||
|
|
134e651989 | ||
|
|
8b130b3351 | ||
|
|
d26182d178 | ||
|
|
8ddcdbf499 | ||
|
|
4e49d752fb | ||
|
|
0cbb5324bf | ||
|
|
1e90245650 | ||
|
|
3425bc0349 | ||
|
|
7593bb98c1 | ||
|
|
d8c007f644 | ||
|
|
0ea51861c7 | ||
|
|
cfbf4d8452 | ||
|
|
af88851228 | ||
|
|
864f23c60d | ||
|
|
8dffcf842f | ||
|
|
6971d8c3a1 | ||
|
|
43f4cc4e17 | ||
|
|
a5530f59f7 | ||
|
|
e272552780 | ||
|
|
dfbbc3b1a1 | ||
|
|
a8ab714606 | ||
|
|
2ab419c8a5 | ||
|
|
29e85a6b06 | ||
|
|
125d36e7d2 | ||
|
|
16406f88a7 | ||
|
|
dee1a2ae6b | ||
|
|
1f879b3e87 | ||
|
|
b5bd236387 | ||
|
|
41812c9fde | ||
|
|
4faf2a3c6d | ||
|
|
d3ede3151a | ||
|
|
721290b1e9 | ||
|
|
10929157b4 | ||
|
|
5a74022e8a | ||
|
|
a74b0232f9 | ||
|
|
e81a036850 | ||
|
|
389896411a | ||
|
|
6adae46a4c | ||
|
|
96ed38292f | ||
|
|
47b2bc8a83 | ||
|
|
9ad223c41c | ||
|
|
d09833744a |
No files matched your search
@@ -1,4 +1,3 @@
|
||||
.git
|
||||
web/node_modules
|
||||
web/*.log
|
||||
web/regression
|
||||
|
||||
@@ -3,7 +3,7 @@ updates:
|
||||
- package-ecosystem: "docker"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -12,7 +12,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -21,7 +21,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/tools"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -30,7 +30,7 @@ updates:
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/web/regression"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -39,7 +39,7 @@ updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/runtime"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
@@ -48,7 +48,7 @@ updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/web"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
interval: "weekly"
|
||||
labels:
|
||||
- "Dependencies"
|
||||
commit-message:
|
||||
|
||||
@@ -14,10 +14,15 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-container:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Build the container
|
||||
run: docker build .
|
||||
uses: docker/build-push-action@v6
|
||||
with:
|
||||
push: false
|
||||
context: .
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-docs:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
make docs
|
||||
|
||||
- name: Archive HTML
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pgadmin4-html-build-output
|
||||
path: docs/en_US/_build/html/*
|
||||
@@ -44,7 +44,7 @@ jobs:
|
||||
make docs-epub
|
||||
|
||||
- name: Archive ePub
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pgadmin4-epub-build-output
|
||||
path: docs/en_US/_build/epub/pgAdmin4.epub
|
||||
@@ -55,7 +55,7 @@ jobs:
|
||||
make docs-pdf
|
||||
|
||||
- name: Archive PDF
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pgadmin4-pdf-build-output
|
||||
path: docs/en_US/_build/latex/pgadmin4.pdf
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-javascript-style:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-python-package:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
make pip
|
||||
|
||||
- name: Archive Python wheel
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pgadmin4-python-build-output
|
||||
path: dist/*
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-python-style:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
build-tarball:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
make src
|
||||
|
||||
- name: Archive source tarball
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: pgadmin4-tarball-build-output
|
||||
path: dist/*
|
||||
@@ -14,10 +14,10 @@ concurrency:
|
||||
|
||||
jobs:
|
||||
check-translations:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
|
||||
@@ -21,23 +21,26 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
pgver: [13, 14, 15, 16, 17]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the EDB APT repo on Linux
|
||||
run: |
|
||||
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
|
||||
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
|
||||
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
|
||||
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
|
||||
|
||||
- name: Install platform dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger
|
||||
|
||||
- name: Install pgagent on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
|
||||
run: |
|
||||
sudo apt install -y edb-as${{ matrix.pgver }}-pgagent
|
||||
|
||||
- name: Create the tablespace directory
|
||||
run: |
|
||||
@@ -58,7 +61,9 @@ jobs:
|
||||
sleep 2
|
||||
done
|
||||
|
||||
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
|
||||
- name: Create pgagent extension on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
|
||||
run: psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: make install-python-testing
|
||||
@@ -157,21 +162,21 @@ jobs:
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: server-log-pg${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: regression-log-pg${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
|
||||
- name: Archive screenshots
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: screenshots-pg${{ matrix.pgver }}
|
||||
path: web/regression/screenshots
|
||||
|
||||
@@ -20,12 +20,12 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
pgver: [13, 14, 15, 16, 17]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the PGDG APT repo
|
||||
run: |
|
||||
@@ -160,21 +160,21 @@ jobs:
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: server-log-pg${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: regression-log-pg${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
|
||||
- name: Archive screenshots
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: screenshots-pg${{ matrix.pgver }}
|
||||
path: web/regression/screenshots
|
||||
|
||||
@@ -17,16 +17,16 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
os: [macos-latest, ubuntu-22.04, windows-latest]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/setup-node@v3
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '18.x'
|
||||
node-version: '20.x'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Upgrade yarn
|
||||
run: |
|
||||
|
||||
@@ -32,25 +32,28 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-latest]
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
pgver: [13, 14, 15, 16, 17]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the EDB APT repo on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo su -c 'echo "deb [arch=amd64] https://apt.enterprisedb.com/$(lsb_release -cs)-edb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/edb-$(lsb_release -cs).list'
|
||||
sudo su -c 'echo "machine apt.enterprisedb.com login ${{ secrets.EDB_REPO_USERNAME }} password ${{ secrets.EDB_REPO_PASSWORD }}" > /etc/apt/auth.conf.d/edb.conf'
|
||||
sudo wget -q -O - https://apt.enterprisedb.com/edb-deb.gpg.key | sudo apt-key add -
|
||||
curl -1sLf 'https://downloads.enterprisedb.com/${{ secrets.CLOUDSMITH_TOKEN }}/enterprise/setup.deb.sh' | sudo -E bash
|
||||
|
||||
- name: Install platform dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger edb-as${{ matrix.pgver }}-pgagent
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev edb-as${{ matrix.pgver }}-server edb-as${{ matrix.pgver }}-server-pldebugger
|
||||
|
||||
- name: Install pgagent on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
|
||||
run: |
|
||||
sudo apt install -y edb-as${{ matrix.pgver }}-pgagent
|
||||
|
||||
- name: Install platform dependencies on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
@@ -78,6 +81,12 @@ jobs:
|
||||
icacls "C:\EPAS\${{ matrix.pgver }}\tablespaces" /grant "NETWORK SERVICE":(OI)(CI)F /T
|
||||
shell: cmd
|
||||
|
||||
- name: Add edb_job_scheduler into config file.
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver >= 16 }}
|
||||
run: |
|
||||
sudo sed -i "s/shared_preload_libraries = '/shared_preload_libraries = '\$libdir\/edb_job_scheduler,/g" /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo su -c "echo \"edb_job_scheduler.database_list = 'test_dbms_job_scheduler'\" >> /etc/edb-as/${{ matrix.pgver }}/main/postgresql.conf"
|
||||
|
||||
- name: Start PostgreSQL on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
@@ -92,8 +101,10 @@ jobs:
|
||||
>&2 echo "EPAS is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
|
||||
|
||||
- name: Create pgagent extension on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' && matrix.pgver <= 16 }}
|
||||
run: psql -U enterprisedb -d postgres -p 58${{ matrix.pgver }} -c 'CREATE EXTENSION IF NOT EXISTS pgagent;'
|
||||
|
||||
- name: Install Python dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
@@ -272,14 +283,14 @@ jobs:
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: server-log-epas${{ matrix.pgver }}
|
||||
name: server-log-epas-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: regression-log-epas${{ matrix.pgver }}
|
||||
name: regression-log-epas-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
@@ -20,22 +20,22 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, windows-latest]
|
||||
pgver: [12, 13, 14, 15, 16]
|
||||
os: [macos-latest, ubuntu-22.04, windows-latest]
|
||||
pgver: [13, 14, 15, 16, 17]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup the PGDG APT repo on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
|
||||
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
||||
|
||||
- name: Install platform dependencies on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install -y libpq-dev libffi-dev libssl-dev libkrb5-dev zlib1g-dev postgresql-${{ matrix.pgver }} postgresql-${{ matrix.pgver }}-pldebugger pgagent
|
||||
@@ -44,6 +44,7 @@ jobs:
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
brew install postgresql@${{ matrix.pgver }}
|
||||
echo "/opt/homebrew/opt/postgresql@${{ matrix.pgver }}/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Uninstall PostgreSQL if already present
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
@@ -61,13 +62,13 @@ jobs:
|
||||
ECHO Running %INSTALLER_EXE%...
|
||||
%INSTALLER_EXE% --prefix C:\PostgreSQL\${{ matrix.pgver }} --datadir C:\PostgreSQL\${{ matrix.pgver }}\data --serverport 59${{ matrix.pgver }} --superpassword postgres --install_runtimes 0 --mode unattended --unattendedmodeui none --disable-components pgAdmin,stackbuilder --enable-components server,commandlinetools"
|
||||
choco install -y mitkerberos
|
||||
|
||||
|
||||
REM Ignore error 3010 (reboot required)
|
||||
IF %ERRORLEVEL% EQU 3010 cmd /c "exit /b 0"
|
||||
shell: cmd
|
||||
|
||||
- name: Create the tablespace directory on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo mkdir -p /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
sudo chown postgres:postgres /var/lib/postgresql/tablespaces/${{ matrix.pgver }}
|
||||
@@ -75,7 +76,7 @@ jobs:
|
||||
- name: Create the tablespace directory on macOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
mkdir -p /usr/local/var/tablespaces/${{ matrix.pgver }}
|
||||
mkdir -p /opt/homebrew/var/tablespaces/${{ matrix.pgver }}
|
||||
|
||||
- name: Create the tablespace directory on Windows
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
@@ -85,37 +86,37 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Start PostgreSQL on Linux
|
||||
if: ${{ matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
sudo su -c "echo local all all trust > /etc/postgresql/${{ matrix.pgver }}/main/pg_hba.conf"
|
||||
sudo sed -i "s/port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo sed -i "s/#shared_preload_libraries = ''/shared_preload_libraries = '\$libdir\/plugin_debugger'/g" /etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf
|
||||
sudo su - postgres -c "/usr/lib/postgresql/${{ matrix.pgver }}/bin/postgres -D /var/lib/postgresql/${{ matrix.pgver }}/main -c config_file=/etc/postgresql/${{ matrix.pgver }}/main/postgresql.conf &"
|
||||
|
||||
|
||||
until sudo runuser -l postgres -c "pg_isready -p 59${{ matrix.pgver }}" 2>/dev/null; do
|
||||
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
|
||||
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pgagent;'
|
||||
psql -U postgres -p 59${{ matrix.pgver }} -c 'CREATE EXTENSION pldbgapi;'
|
||||
|
||||
- name: Start PostgreSQL on macOS
|
||||
if: ${{ matrix.os == 'macos-latest' }}
|
||||
run: |
|
||||
echo local all all trust > /usr/local/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
|
||||
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /usr/local/var/postgresql@${{ matrix.pgver }}/postgresql.conf
|
||||
echo local all all trust > /opt/homebrew/var/postgresql@${{ matrix.pgver }}/pg_hba.conf
|
||||
sed -i '' "s/#port = 543[0-9]/port = 59${{ matrix.pgver }}/g" /opt/homebrew/var/postgresql@${{ matrix.pgver }}/postgresql.conf
|
||||
brew services restart postgresql@${{ matrix.pgver }}
|
||||
|
||||
until /usr/local/opt/postgresql@${{ matrix.pgver }}/bin/pg_isready -p 59${{ matrix.pgver }} 2>/dev/null; do
|
||||
|
||||
until /opt/homebrew/opt/postgresql@${{ matrix.pgver }}/bin/pg_isready -p 59${{ matrix.pgver }} 2>/dev/null; do
|
||||
>&2 echo "Postgres is unavailable - sleeping for 2 seconds"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
|
||||
psql postgres -p 59${{ matrix.pgver }} -c 'CREATE ROLE postgres SUPERUSER LOGIN;'
|
||||
|
||||
- name: Install Python dependencies on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
|
||||
run: make install-python-testing
|
||||
|
||||
- name: Install Python dependencies on Windows
|
||||
@@ -130,25 +131,25 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Create the test configuration on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
cat <<EOF > web/config_local.py
|
||||
from config import *
|
||||
|
||||
|
||||
# Debug mode
|
||||
DEBUG = True
|
||||
|
||||
|
||||
# App mode
|
||||
SERVER_MODE = False
|
||||
|
||||
|
||||
# Log
|
||||
CONSOLE_LOG_LEVEL = DEBUG
|
||||
FILE_LOG_LEVEL = DEBUG
|
||||
|
||||
|
||||
DEFAULT_SERVER = '127.0.0.1'
|
||||
|
||||
|
||||
UPGRADE_CHECK_ENABLED = False
|
||||
|
||||
|
||||
LOG_FILE = "$(pwd)/var/pgadmin4.log"
|
||||
SESSION_DB_PATH = "$(pwd)/var/sessions"
|
||||
STORAGE_DIR = "$(pwd)/var/storage"
|
||||
@@ -156,7 +157,7 @@ jobs:
|
||||
TEST_SQLITE_PATH = "$(pwd)/var/pgadmin4.db"
|
||||
AZURE_CREDENTIAL_CACHE_DIR = "$(pwd)/var/azurecredentialcache"
|
||||
EOF
|
||||
|
||||
|
||||
cat <<EOF > web/regression/test_config.json
|
||||
{
|
||||
"pgAdmin4_login_credentials": {
|
||||
@@ -180,15 +181,15 @@ jobs:
|
||||
"name": "PostgreSQL ${{ matrix.pgver }}",
|
||||
"comment": "PostgreSQL ${{ matrix.pgver }} Server",
|
||||
"db_username": "postgres",
|
||||
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-latest' && '/var/run/postgresql' || '127.0.0.1' }}",
|
||||
"host": "${{ matrix.os == 'macos-latest' && '/tmp' || matrix.os == 'ubuntu-22.04' && '/var/run/postgresql' || '127.0.0.1' }}",
|
||||
"db_password": "postgres",
|
||||
"db_port": 59${{ matrix.pgver }},
|
||||
"maintenance_db": "postgres",
|
||||
"sslmode": "prefer",
|
||||
"tablespace_path": "${{ matrix.os == 'macos-latest' && format('/usr/local/var/tablespaces/{0}', matrix.pgver) || format('/var/lib/postgresql/tablespaces/{0}', matrix.pgver) }}",
|
||||
"tablespace_path": "${{ matrix.os == 'macos-latest' && format('/opt/homebrew/var/tablespaces/{0}', matrix.pgver) || format('/var/lib/postgresql/tablespaces/{0}', matrix.pgver) }}",
|
||||
"enabled": true,
|
||||
"default_binary_paths": {
|
||||
"pg": "${{ matrix.os == 'macos-latest' && format('/usr/local/opt/postgresql@{0}/bin', matrix.pgver) || format('/usr/lib/postgresql/{0}/bin', matrix.pgver) }}",
|
||||
"pg": "${{ matrix.os == 'macos-latest' && format('/opt/homebrew/opt/postgresql@{0}/bin', matrix.pgver) || format('/usr/lib/postgresql/{0}/bin', matrix.pgver) }}",
|
||||
"ppas": ""
|
||||
}
|
||||
}
|
||||
@@ -205,7 +206,7 @@ jobs:
|
||||
if: ${{ matrix.os == 'windows-latest' }}
|
||||
run: |
|
||||
FOR /f "delims=" %%D IN ('python -c "import os; print(os.getcwd().replace('\\', '\\\\'))"') DO SET WORKING_DIR=%%D
|
||||
|
||||
|
||||
> web\config_local.py (
|
||||
@echo.from config import *
|
||||
@echo.
|
||||
@@ -230,7 +231,7 @@ jobs:
|
||||
@echo.TEST_SQLITE_PATH = "%WORKING_DIR%\\var\\test_pgadmin4.db"
|
||||
@echo.AZURE_CREDENTIAL_CACHE_DIR = "%WORKING_DIR%\\var\\azurecredentialcache"
|
||||
)
|
||||
|
||||
|
||||
> web\regression\test_config.json (
|
||||
@echo.{
|
||||
@echo. "pgAdmin4_login_credentials": {
|
||||
@@ -277,7 +278,7 @@ jobs:
|
||||
shell: cmd
|
||||
|
||||
- name: Run the tests on Linux and macOS
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-latest' }}
|
||||
if: ${{ matrix.os == 'macos-latest' || matrix.os == 'ubuntu-22.04' }}
|
||||
run: |
|
||||
. venv/bin/activate
|
||||
make check-python
|
||||
@@ -291,14 +292,14 @@ jobs:
|
||||
|
||||
- name: Archive server log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: server-log-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: var/pgadmin4.log
|
||||
|
||||
- name: Archive regression log
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: regression-log-${{ matrix.os }}-pg${{ matrix.pgver }}
|
||||
path: web/regression/regression.log
|
||||
|
||||
@@ -22,10 +22,10 @@ jobs:
|
||||
# Only run if the project key is set
|
||||
if: vars.SONARQUBE_PROJECT_KEY != null
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
.DS_Store
|
||||
.idea
|
||||
.vscode
|
||||
.sonarlint
|
||||
.yarn
|
||||
/*.diff
|
||||
/*.patch
|
||||
@@ -38,6 +39,7 @@ runtime/pgAdmin4.app/
|
||||
runtime/pgAdmin4.pro.user*
|
||||
runtime/pgAdmin4_resource.rc
|
||||
runtime/release/
|
||||
runtime/dev_config.json
|
||||
runtime/ui_BrowserWindow.h
|
||||
web/config_local.py
|
||||
web/pgadmin/misc/themes/pgadmin.themes.json
|
||||
@@ -48,6 +50,7 @@ node_modules/
|
||||
web/pgAdmin/static/js/generated
|
||||
web/pgadmin/static/js/generated
|
||||
web/yarn-error.log
|
||||
web/commit_hash
|
||||
/web/cacert.pem
|
||||
auditjs.html
|
||||
auditpy.txt
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
3.8.0
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
@@ -31,6 +31,7 @@ RUN apk add --no-cache \
|
||||
yarn \
|
||||
zlib-dev
|
||||
|
||||
COPY .git .git
|
||||
# Create the /pgadmin4 directory and copy the source into it. Explicitly
|
||||
# remove the node_modules directory as we'll recreate a clean version, as well
|
||||
# as various other files we don't want
|
||||
@@ -46,6 +47,8 @@ WORKDIR /pgadmin4/web
|
||||
|
||||
# Build the JS vendor code in the app-builder, and then remove the vendor source.
|
||||
RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
npm install -g corepack && \
|
||||
corepack enable && \
|
||||
yarn set version berry && \
|
||||
yarn set version 3 && \
|
||||
yarn install && \
|
||||
@@ -58,7 +61,8 @@ RUN export CPPFLAGS="-DPNG_ARM_NEON_OPT=0" && \
|
||||
webpack.* \
|
||||
jest.config.js \
|
||||
babel.* \
|
||||
./pgadmin/static/js/generated/.cache
|
||||
./pgadmin/static/js/generated/.cache \
|
||||
/pgadmin4/.git
|
||||
|
||||
#########################################################################
|
||||
# Next, create the base environment for Python
|
||||
@@ -68,7 +72,7 @@ FROM alpine:latest AS env-builder
|
||||
|
||||
# Install dependencies
|
||||
COPY requirements.txt /
|
||||
RUN apk add --no-cache \
|
||||
RUN apk add --no-cache \
|
||||
make \
|
||||
python3 \
|
||||
py3-pip && \
|
||||
@@ -121,6 +125,7 @@ FROM postgres:13-alpine AS pg13-builder
|
||||
FROM postgres:14-alpine AS pg14-builder
|
||||
FROM postgres:15-alpine AS pg15-builder
|
||||
FROM postgres:16-alpine AS pg16-builder
|
||||
FROM postgres:17-alpine AS pg17-builder
|
||||
|
||||
FROM alpine:latest AS tool-builder
|
||||
|
||||
@@ -150,6 +155,11 @@ COPY --from=pg16-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-16/
|
||||
COPY --from=pg16-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-16/
|
||||
COPY --from=pg16-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-16/
|
||||
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_dump /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_dumpall /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/pg_restore /usr/local/pgsql/pgsql-17/
|
||||
COPY --from=pg17-builder /usr/local/bin/psql /usr/local/pgsql/pgsql-17/
|
||||
|
||||
#########################################################################
|
||||
# Assemble everything into the final container.
|
||||
#########################################################################
|
||||
@@ -161,14 +171,14 @@ COPY --from=env-builder /venv /venv
|
||||
|
||||
# Copy in the tools
|
||||
COPY --from=tool-builder /usr/local/pgsql /usr/local/
|
||||
COPY --from=pg16-builder /usr/local/lib/libpq.so.5.16 /usr/lib/
|
||||
COPY --from=pg16-builder /usr/lib/libzstd.so.1.5.5 /usr/lib/
|
||||
COPY --from=pg16-builder /usr/lib/liblz4.so.1.9.4 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/local/lib/libpq.so.5.17 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/lib/libzstd.so.1.5.6 /usr/lib/
|
||||
COPY --from=pg17-builder /usr/lib/liblz4.so.1.10.0 /usr/lib/
|
||||
|
||||
RUN ln -s libpq.so.5.16 /usr/lib/libpq.so.5 && \
|
||||
ln -s libpq.so.5.16 /usr/lib/libpq.so && \
|
||||
ln -s libzstd.so.1.5.5 /usr/lib/libzstd.so.1 && \
|
||||
ln -s liblz4.so.1.9.4 /usr/lib/liblz4.so.1
|
||||
RUN ln -s libpq.so.5.17 /usr/lib/libpq.so.5 && \
|
||||
ln -s libpq.so.5.17 /usr/lib/libpq.so && \
|
||||
ln -s libzstd.so.1.5.6 /usr/lib/libzstd.so.1 && \
|
||||
ln -s liblz4.so.1.10.0 /usr/lib/liblz4.so.1
|
||||
|
||||
WORKDIR /pgadmin4
|
||||
ENV PYTHONPATH=/pgadmin4
|
||||
@@ -185,8 +195,9 @@ COPY LICENSE /pgadmin4/LICENSE
|
||||
COPY DEPENDENCIES /pgadmin4/DEPENDENCIES
|
||||
|
||||
# Install runtime dependencies and configure everything in one RUN step
|
||||
RUN apk add \
|
||||
RUN apk add --no-cache \
|
||||
python3 \
|
||||
bash \
|
||||
py3-pip \
|
||||
postfix \
|
||||
krb5-libs \
|
||||
@@ -197,17 +208,17 @@ RUN apk add \
|
||||
libedit \
|
||||
libldap \
|
||||
libcap && \
|
||||
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==20.1.0 && \
|
||||
/venv/bin/python3 -m pip install --no-cache-dir gunicorn==22.0.0 && \
|
||||
find / -type d -name '__pycache__' -exec rm -rf {} + && \
|
||||
useradd -r -u 5050 -g root -s /sbin/nologin pgadmin && \
|
||||
mkdir -p /var/lib/pgadmin && \
|
||||
chown pgadmin:root /var/lib/pgadmin && \
|
||||
mkdir -p /run/pgadmin /var/lib/pgadmin && \
|
||||
chown pgadmin:root /run/pgadmin /var/lib/pgadmin && \
|
||||
chmod g=u /var/lib/pgadmin && \
|
||||
touch /pgadmin4/config_distro.py && \
|
||||
chown pgadmin:root /pgadmin4/config_distro.py && \
|
||||
chmod g=u /pgadmin4/config_distro.py && \
|
||||
chmod g=u /etc/passwd && \
|
||||
setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.11 && \
|
||||
setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/python3.12 && \
|
||||
echo "pgadmin ALL = NOPASSWD: /usr/sbin/postfix start" > /etc/sudoers.d/postfix && \
|
||||
echo "pgadminr ALL = NOPASSWD: /usr/sbin/postfix start" >> /etc/sudoers.d/postfix
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ pgAdmin 4
|
||||
This software is released under the PostgreSQL licence.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
||||
|
||||
Permission to use, copy, modify, and distribute this software and its
|
||||
documentation for any purpose, without fee, and without a written agreement is
|
||||
|
||||
@@ -52,24 +52,22 @@ REM Main build sequence Ends
|
||||
|
||||
:SET_ENVIRONMENT
|
||||
ECHO Configuring the environment...
|
||||
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python38"
|
||||
IF "%PGADMIN_PYTHON_DIR%" == "" SET "PGADMIN_PYTHON_DIR=C:\Python313"
|
||||
IF "%PGADMIN_KRB5_DIR%" == "" SET "PGADMIN_KRB5_DIR=C:\Program Files\MIT\Kerberos"
|
||||
IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files (x86)\PostgreSQL\12"
|
||||
IF "%PGADMIN_POSTGRES_DIR%" == "" SET "PGADMIN_POSTGRES_DIR=C:\Program Files\PostgreSQL\17"
|
||||
IF "%PGADMIN_INNOTOOL_DIR%" == "" SET "PGADMIN_INNOTOOL_DIR=C:\Program Files (x86)\Inno Setup 6"
|
||||
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Redist\MSVC\14.16.27012"
|
||||
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64"
|
||||
|
||||
REM Set REDIST_NAME (the filename)
|
||||
set "VCREDIST_FILE=vcredist_x64.exe"
|
||||
IF "%PGADMIN_VCREDIST_DIR%" == "" SET "PGADMIN_VCREDIST_DIR=C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC\14.40.33807"
|
||||
IF "%PGADMIN_VCREDIST_FILE%" == "" SET "PGADMIN_VCREDIST_FILE=vc_redist.x64.exe"
|
||||
IF "%PGADMIN_SIGNTOOL_DIR%" == "" SET "PGADMIN_SIGNTOOL_DIR=C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64"
|
||||
|
||||
REM Set additional variables we need
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\config.py') DO SET APP_MAJOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\config.py') DO SET APP_MINOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\config.py') DO SET APP_VERSION_SUFFIX=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_RELEASE =" %WD%\web\version.py') DO SET APP_MAJOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_REVISION =" %WD%\web\version.py') DO SET APP_MINOR=%%a
|
||||
FOR /F "tokens=3" %%a IN ('findstr /C:"APP_SUFFIX =" %WD%\web\version.py') DO SET APP_VERSION_SUFFIX=%%a
|
||||
REM remove single quote from the string
|
||||
SET APP_VERSION_SUFFIX=%APP_VERSION_SUFFIX:'=%
|
||||
SET APP_NAME=""
|
||||
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\config.py') DO SET APP_NAME=%%a
|
||||
FOR /F "tokens=2* DELims='" %%a IN ('findstr /C:"APP_NAME =" web\branding.py') DO SET APP_NAME=%%a
|
||||
FOR /f "tokens=1 DELims=." %%G IN ('%PGADMIN_PYTHON_DIR%/python.exe -c "print('%APP_NAME%'.lower().replace(' ', ''))"') DO SET APP_SHORTNAME=%%G
|
||||
SET APP_VERSION=%APP_MAJOR%.%APP_MINOR%
|
||||
SET INSTALLERNAME=%APP_SHORTNAME%-%APP_MAJOR%.%APP_MINOR%-%APP_VERSION_SUFFIX%-x64.exe
|
||||
@@ -98,7 +96,7 @@ REM Main build sequence Ends
|
||||
ECHO PostgreSQL directory: %PGADMIN_POSTGRES_DIR%
|
||||
ECHO.
|
||||
ECHO VC++ redist directory: %PGADMIN_VCREDIST_DIR%
|
||||
ECHO VC++ redist file: %VCREDIST_FILE%
|
||||
ECHO VC++ redist file: %PGADMIN_VCREDIST_FILE%
|
||||
ECHO InnoTool directory: %PGADMIN_INNOTOOL_DIR%
|
||||
ECHO signtool directory: %PGADMIN_SIGNTOOL_DIR%
|
||||
ECHO.
|
||||
@@ -217,6 +215,8 @@ REM Main build sequence Ends
|
||||
|
||||
ECHO Installing javascript dependencies...
|
||||
CD "%BUILDROOT%\web"
|
||||
CALL yarn set version berry || EXIT /B 1
|
||||
CALL yarn set version 3 || EXIT /B 1
|
||||
CALL yarn install || EXIT /B 1
|
||||
CALL npm rebuild || EXIT /B 1
|
||||
|
||||
@@ -231,6 +231,8 @@ REM Main build sequence Ends
|
||||
RD /Q /S "%BUILDROOT%\web\regression" 1> nul 2>&1
|
||||
ECHO Removing tools...
|
||||
RD /Q /S "%BUILDROOT%\web\tools" 1> nul 2>&1
|
||||
ECHO Removing yarn cache...
|
||||
RD /Q /S "%BUILDROOT%\web\.yarn" 1> nul 2>&1
|
||||
ECHO Removing any existing configurations...
|
||||
DEL /q "%BUILDROOT%\web\pgadmin4.db" 1> nul 2>&1
|
||||
DEL /q "%BUILDROOT%\web\config_local.py" 1> nul 2>&1
|
||||
@@ -260,47 +262,54 @@ REM Main build sequence Ends
|
||||
RD /Q /S "%BUILDROOT%\docs\en_US\html\_sources" 1> nul 2>&1
|
||||
|
||||
ECHO Staging runtime components...
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\assets" "%BUILDROOT%\runtime\assets" > nul || EXIT /B 1
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\src" "%BUILDROOT%\runtime\src" > nul || EXIT /B 1
|
||||
MKDIR "%BUILDROOT%\runtime\resources\app"
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\assets" "%BUILDROOT%\runtime\resources\app\assets" > nul || EXIT /B 1
|
||||
XCOPY /S /I /E /H /Y "%WD%\runtime\src" "%BUILDROOT%\runtime\resources\app\src" > nul || EXIT /B 1
|
||||
|
||||
COPY "%WD%\runtime\package.json" "%BUILDROOT%\runtime\" > nul || EXIT /B 1
|
||||
CD "%BUILDROOT%\runtime\"
|
||||
CALL yarn install --production=true || EXIT /B 1
|
||||
COPY "%WD%\runtime\package.json" "%BUILDROOT%\runtime\resources\app\" > nul || EXIT /B 1
|
||||
COPY "%WD%\runtime\.yarnrc.yml" "%BUILDROOT%\runtime\resources\app\" > nul || EXIT /B 1
|
||||
|
||||
ECHO Downloading NWjs to %TMPDIR%...
|
||||
REM Get a fresh copy of nwjs.
|
||||
REM NOTE: The nw download servers seem to be very unreliable, so at the moment we're using wget which retries
|
||||
CD "%BUILDROOT%\runtime\resources\app\"
|
||||
|
||||
REM YARN
|
||||
REM CALL yarn --cwd "%TMPDIR%" add nw || EXIT /B
|
||||
REM YARN END
|
||||
CALL yarn set version berry || EXIT /B 1
|
||||
CALL yarn set version 3 || EXIT /B 1
|
||||
CALL yarn plugin import workspace-tools || EXIT /B 1
|
||||
CALL yarn workspaces focus --production || EXIT /B 1
|
||||
|
||||
ECHO Removing yarn cache...
|
||||
RD /Q /S "%BUILDROOT%\runtime\resources\app\.yarn" 1> nul 2>&1
|
||||
|
||||
ECHO Downloading Electron to %TMPDIR%...
|
||||
REM Get a fresh copy of electron.
|
||||
|
||||
REM WGET
|
||||
REM Comment out the below line as the latest version having some
|
||||
REM problem https://github.com/nwjs/nw.js/issues/7964, so for the time being
|
||||
REM hardcoded the version to 0.77.0
|
||||
REM FOR /f "tokens=2 delims='" %%i IN ('yarn info nw ^| findstr "latest: "') DO SET "NW_VERSION=%%i"
|
||||
REM :GET_NW
|
||||
REM wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
REM IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
FOR /f "tokens=*" %%i IN ('npm info electron version') DO SET "ELECTRON_VERSION=%%i"
|
||||
SET ELECTRON_VERSION="33.3.2"
|
||||
:GET_NW
|
||||
wget https://github.com/electron/electron/releases/download/v%ELECTRON_VERSION%/electron-v%ELECTRON_VERSION%-win32-x64.zip -O "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64.zip"
|
||||
IF %ERRORLEVEL% NEQ 0 GOTO GET_NW
|
||||
|
||||
SET "NW_VERSION=0.77.0"
|
||||
wget https://dl.nwjs.io/v%NW_VERSION%/nwjs-v%NW_VERSION%-win-x64.zip -O "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip"
|
||||
|
||||
tar -C "%TMPDIR%" -xvf "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64.zip" || EXIT /B 1
|
||||
MKDIR "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64" || EXIT /B 1
|
||||
tar -C "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64" -xvf "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64.zip" || EXIT /B 1
|
||||
REM WGET END
|
||||
|
||||
REM YARN
|
||||
REM XCOPY /S /I /E /H /Y "%TMPDIR%\node_modules\nw\nwjs\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM YARN END
|
||||
REM XCOPY
|
||||
XCOPY /S /I /E /H /Y "%TMPDIR%\electron-v%ELECTRON_VERSION%-win32-x64\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM XCOPY END
|
||||
|
||||
REM WGET
|
||||
XCOPY /S /I /E /H /Y "%TMPDIR%\nwjs-v%NW_VERSION%-win-x64\*" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
REM WGET END
|
||||
MOVE "%BUILDROOT%\runtime\electron.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
|
||||
ECHO Downloading rcedit.exe...
|
||||
wget https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe -O "%TMPDIR%\rcedit-x64.exe"
|
||||
|
||||
ECHO Replacing executable icon, description, version...
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-icon "%WD%\pkg\win32\Resources\pgAdmin4.ico"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-version-string "FileDescription" "%APP_NAME%"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-version-string "ProductName" "%APP_NAME%"
|
||||
%TMPDIR%\rcedit-x64.exe "%BUILDROOT%\runtime\pgAdmin4.exe" --set-product-version "%APP_VERSION%""
|
||||
|
||||
MOVE "%BUILDROOT%\runtime\nw.exe" "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
ECHO Attempting to sign the pgAdmin4.exe...
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%BUILDROOT%\runtime\pgAdmin4.exe"
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
@@ -309,17 +318,15 @@ REM Main build sequence Ends
|
||||
PAUSE
|
||||
)
|
||||
|
||||
ECHO Replacing executable icon...
|
||||
CALL yarn --cwd "%TMPDIR%" add winresourcer || EXIT /B
|
||||
"%TMPDIR%\node_modules\winresourcer\bin\Resourcer.exe" -op:upd -src:"%BUILDROOT%\runtime\pgAdmin4.exe" -type:Icongroup -name:IDR_MAINFRAME -file:"%WD%\pkg\win32\Resources\pgAdmin4.ico"
|
||||
|
||||
ECHO Staging PostgreSQL components...
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libpq.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libcrypto-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\libssl-*-x64.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libintl-*.dll" "%BUILDROOT%\runtime" > nul
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libiconv-*.dll" "%BUILDROOT%\runtime" > nul
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\liblz4.dll" "%BUILDROOT%\runtime" > nul
|
||||
IF EXIST "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" COPY "%PGADMIN_POSTGRES_DIR%\bin\libzstd.dll" "%BUILDROOT%\runtime" > nul
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\zlib1.dll" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dump.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_dumpall.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1L%
|
||||
COPY "%PGADMIN_POSTGRES_DIR%\bin\pg_restore.exe" "%BUILDROOT%\runtime" > nul || EXIT /B 1
|
||||
@@ -327,7 +334,7 @@ REM Main build sequence Ends
|
||||
|
||||
ECHO Staging VC++ runtime...
|
||||
MKDIR "%BUILDROOT%\installer" || EXIT /B 1
|
||||
COPY "%PGADMIN_VCREDIST_DIR%\%VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
|
||||
COPY "%PGADMIN_VCREDIST_DIR%\%PGADMIN_VCREDIST_FILE%" "%BUILDROOT%\installer" > nul || EXIT /B 1
|
||||
|
||||
CD %WD%
|
||||
EXIT /B 0
|
||||
@@ -345,7 +352,7 @@ REM Main build sequence Ends
|
||||
ECHO Processing installer configuration script...
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in" "-o" "%WD%\pkg\win32\installer.iss.in_stage1" "-s" MYAPP_FULLVERSION -r """%APP_VERSION%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage1" "-o" "%WD%\pkg\win32\installer.iss.in_stage2" "-s" MYAPP_VERSION -r """v%APP_MAJOR%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%VCREDIST_FILE%"""
|
||||
CALL "%PGADMIN_PYTHON_DIR%\python" "%WD%\pkg\win32\replace.py" "-i" "%WD%\pkg\win32\installer.iss.in_stage2" "-o" "%WD%\pkg\win32\installer.iss" "-s" MYAPP_VCDIST -r """%PGADMIN_VCREDIST_DIRNAME%\%PGADMIN_VCREDIST_FILE%"""
|
||||
|
||||
ECHO Cleaning up...
|
||||
DEL /s "%WD%\pkg\win32\installer.iss.in_stage*" > nul
|
||||
@@ -366,9 +373,11 @@ REM Main build sequence Ends
|
||||
ECHO Generating SBOM...
|
||||
CALL syft "%BUILDROOT%" -o cyclonedx-json > "%BUILDROOT%\sbom.json"
|
||||
|
||||
EXIT /B 0
|
||||
|
||||
:SIGN_INSTALLER
|
||||
ECHO Attempting to sign the installer...
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /tr http://timestamp.digicert.com "%DISTROOT%\%INSTALLERNAME%"
|
||||
CALL "%PGADMIN_SIGNTOOL_DIR%\signtool.exe" sign /fd certHash /tr http://timestamp.digicert.com /td SHA256 "%DISTROOT%\%INSTALLERNAME%"
|
||||
IF %ERRORLEVEL% NEQ 0 (
|
||||
ECHO.
|
||||
ECHO ************************************************************
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
#########################################################################
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
||||
APP_NAME := $(shell grep ^APP_NAME web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
|
||||
APP_RELEASE := $(shell grep ^APP_RELEASE web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_REVISION := $(shell grep ^APP_REVISION web/config.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_NAME := $(shell grep ^APP_NAME web/branding.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]' | tr -d "'" | awk '{print tolower($$0)}')
|
||||
APP_RELEASE := $(shell grep ^APP_RELEASE web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
APP_REVISION := $(shell grep ^APP_REVISION web/version.py | awk -F"=" '{print $$NF}' | tr -d '[:space:]')
|
||||
|
||||
#########################################################################
|
||||
# High-level targets
|
||||
@@ -118,6 +118,7 @@ debian:
|
||||
|
||||
docker:
|
||||
echo $(APP_NAME)
|
||||
git checkout HEAD
|
||||
docker build --pull -t ${APP_NAME} -t $(APP_NAME):latest -t $(APP_NAME):$(APP_RELEASE) -t $(APP_NAME):$(APP_RELEASE).$(APP_REVISION) .
|
||||
|
||||
docs:
|
||||
|
||||
@@ -14,7 +14,7 @@ and ReactJS, HTML5 with CSS for the client side processing and UI.
|
||||
|
||||
Although developed using web technologies, pgAdmin 4 can be deployed either on
|
||||
a web server using a browser, or standalone on a workstation. The runtime/
|
||||
subdirectory contains an NWjs based runtime application intended to allow this,
|
||||
subdirectory contains an Electron based runtime application intended to allow this,
|
||||
which will execute the Python server and display the UI.
|
||||
|
||||
## Building the Runtime
|
||||
@@ -35,13 +35,7 @@ paths it would expect to find in the standard package for your platform.
|
||||
You can then execute the runtime by running something like:
|
||||
|
||||
```bash
|
||||
node_modules/nw/nwjs/nw .
|
||||
```
|
||||
|
||||
or on macOS:
|
||||
|
||||
```bash
|
||||
node_modules/nw/nwjs/nwjs.app/Contents/MacOS/nwjs .
|
||||
yarn run start
|
||||
```
|
||||
|
||||
# Configuring the Python Environment
|
||||
|
||||
@@ -200,11 +200,29 @@ tab related to tables that should be included in the backup.
|
||||
contents of the table that they have access to. This option is relevant
|
||||
only when dumping the contents of a table which has row security.
|
||||
|
||||
* Move the switch next to *With OIDs* towards right position to include object
|
||||
identifiers as part of the table data for each table.
|
||||
* Use the *Include table(s) and Children* field to dump the tables and any partitions
|
||||
or inheritance child tables of the tables matching the pattern.
|
||||
**Note:** This option is visible only for database server greater than or
|
||||
equal to 16.
|
||||
|
||||
* The Exclude patterns field is utilized to exclude patterns in the following manner:
|
||||
|
||||
* Use the *Exclude table data* field to not dump data for any tables
|
||||
matching the table pattern.
|
||||
* Use the *Table(s)* field to not dump the tables matching the
|
||||
pattern. Multiple patterns can be given separated by space.
|
||||
|
||||
* Use the *Table(s) data* field to not dump data for any tables
|
||||
matching the pattern. Multiple patterns can be given separated by
|
||||
spaces.
|
||||
|
||||
* Use the *Table(s) and children* field to not dump the tables and any
|
||||
partitions or inheritance child tables of the tables matching the pattern.
|
||||
**Note:** This option is visible only for database server greater than or
|
||||
equal to 16.
|
||||
|
||||
* Use the *Table(s) data and children* field to not dump data for the
|
||||
tables and any partitions or inheritance child tables of the tables matching
|
||||
the table pattern. **Note:** This option is visible only for database server
|
||||
greater than or equal to 16.
|
||||
|
||||
Click the *Options* tab to continue. Use the fields in the *Options*
|
||||
tab to provide other backup options.
|
||||
|
||||
@@ -136,9 +136,6 @@ tab related to tables that should be included in the backup.
|
||||
partition itself. **Note:** This option is visible only for database server
|
||||
greater than or equal to 11.
|
||||
|
||||
* Move the switch next to *With OIDs* towards right position to include object
|
||||
identifiers as part of the table data for each table.
|
||||
|
||||
Click the *Options* tab to continue. Use the fields in the *Options*
|
||||
tab to provide other backup options.
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ Use *Clear Saved Password* functionality to clear the saved password for the
|
||||
database server.
|
||||
|
||||
.. image:: images/clear_saved_password.png
|
||||
:alt: Clear saved password
|
||||
:align: center
|
||||
|
||||
*Clear Saved Password* shows in the context menu for the selected server as well
|
||||
@@ -17,6 +18,7 @@ Use *Clear SSH Tunnel Password* functionality to clear the saved password of SSH
|
||||
Tunnel to connect to the database server.
|
||||
|
||||
.. image:: images/clear_tunnel_password.png
|
||||
:alt: Clear SSH tunnel password
|
||||
:align: center
|
||||
|
||||
*Clear SSH Tunnel Password* shows in the context menu for the selected server as
|
||||
|
||||
@@ -7,12 +7,12 @@
|
||||
The bulk of pgAdmin is a Python web application written using the Flask framework
|
||||
on the backend, and HTML5 with CSS3,ReactJS on the front end. A
|
||||
desktop runtime is also included for users that prefer a desktop application to
|
||||
a web application, which is written using NWjs (Node Webkit).
|
||||
a web application, which is written using Electron.
|
||||
|
||||
Runtime
|
||||
*******
|
||||
|
||||
The runtime is based on NWjs which integrates a browser and the Python server
|
||||
The runtime is based on Electron which integrates a browser and the Python server
|
||||
creating a standalone application. The source code can be found in the
|
||||
**/runtime** directory in the source tree.
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ review process for any changes submitted for inclusion in pgAdmin.
|
||||
bulk updates every year). The start date should always be 2013, and the end year
|
||||
the current year, e.g.
|
||||
|
||||
Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
||||
|
||||
* Ensure there's a blank line immediately following any copyright headers.
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ with the required file header is shown below::
|
||||
#
|
||||
# pgAdmin 4 - PostgreSQL Tools
|
||||
#
|
||||
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
||||
# Copyright (C) 2013 - 2025, The pgAdmin Development Team
|
||||
# This software is released under the PostgreSQL Licence
|
||||
#
|
||||
##########################################################################
|
||||
|
||||
@@ -50,6 +50,16 @@ settings:
|
||||
* Use the *LC_CTYPE* field to specify a locale with specified character
|
||||
classification. The locale must be applicable to the current database encoding.
|
||||
(See CREATE DATABASE for details.)
|
||||
* Use the drop-down listbox next to *Locale Provider* to select a locale services associated
|
||||
with the collation. Possible values are: icu, libc. libc is the default.
|
||||
* Move the switch next to *Deterministic* to *YES* to specify whether the collation should use
|
||||
deterministic comparisons. By default, this option is set to true. In a
|
||||
deterministic comparison, strings that are not byte-wise equal are considered
|
||||
unequal, even if they are considered logically equal in the comparison.
|
||||
* Use the *Rules* field to specify a rules for customizing the behavior of the collation.
|
||||
It includes considerations such as character ordering, case sensitivity, and accent
|
||||
sensitivity.
|
||||
* Use the *Version* field to specify version string to store with the collation object.
|
||||
|
||||
|
||||
Click the *SQL* tab to continue.
|
||||
|
||||
@@ -11,6 +11,7 @@ and select *Connect Server...* from the context menu.
|
||||
|
||||
.. image:: images/connect_to_server.png
|
||||
:alt: Connect to server dialog
|
||||
:align: center
|
||||
|
||||
Provide authentication information for the selected server:
|
||||
|
||||
@@ -26,6 +27,7 @@ Tunnel and Database server passwords if not already saved.
|
||||
|
||||
.. image:: images/connect_to_tunneled_server.png
|
||||
:alt: Connect to server dialog
|
||||
:align: center
|
||||
|
||||
Provide authentication information for the selected server:
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@ where *<tag name>* is one of the following:
|
||||
+==========+===============================================================================+
|
||||
| latest | The most recent release. |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| 7.4 | A specific version (7.4 in this case). |
|
||||
| 8.4 | A specific version (8.4 in this case). |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| 7 | the latest release of a specific major version (major version 7 in this case).|
|
||||
| 8 | the latest release of a specific major version (major version 8 in this case).|
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
| snapshot | The latest nightly test build. |
|
||||
+----------+-------------------------------------------------------------------------------+
|
||||
@@ -42,22 +42,22 @@ maintenance functions to be executed. Multiple versions are included in the
|
||||
following directories to allow use with different versions of the database
|
||||
server:
|
||||
|
||||
* PostgreSQL 11: */usr/local/pgsql-11*
|
||||
* PostgreSQL 12: */usr/local/pgsql-12*
|
||||
* PostgreSQL 13: */usr/local/pgsql-13*
|
||||
* PostgreSQL 14: */usr/local/pgsql-14*
|
||||
* PostgreSQL 15: */usr/local/pgsql-15*
|
||||
* PostgreSQL 16: */usr/local/pgsql-16*
|
||||
|
||||
The default binary paths set in the container are as follows:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
DEFAULT_BINARY_PATHS = {
|
||||
'pg-17': '/usr/local/pgsql-17',
|
||||
'pg-16': '/usr/local/pgsql-16',
|
||||
'pg-15': '/usr/local/pgsql-15',
|
||||
'pg-14': '/usr/local/pgsql-14',
|
||||
'pg-13': '/usr/local/pgsql-13',
|
||||
'pg-12': '/usr/local/pgsql-12'
|
||||
'pg-13': '/usr/local/pgsql-13'
|
||||
}
|
||||
|
||||
this may be changed in the :ref:`preferences`.
|
||||
@@ -132,7 +132,30 @@ than using the default.
|
||||
|
||||
Override the default file path for the server definition list. See the
|
||||
/pgadmin4/servers.json mapped file below for more information. See the format
|
||||
of the `JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
|
||||
of the `Servers JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/import_export_servers.html#json-format>`_.
|
||||
|
||||
**PGADMIN_PREFERENCES_JSON_FILE**
|
||||
|
||||
*Default: /pgadmin4/preferences.json*
|
||||
|
||||
Override the default file path for the preferences customization at the container creation. See the
|
||||
/pgadmin4/preferences.json mapped file below for more information. See the format
|
||||
of the `Preferences JSON file <https://www.pgadmin.org/docs/pgadmin4/latest/preferences.html#json-format>`_.
|
||||
|
||||
**PGADMIN_CUSTOM_CONFIG_DISTRO_FILE**
|
||||
|
||||
*Default: /pgadmin4/config_distro.py*
|
||||
|
||||
Override the default file path for the pgadmin configurations file.This can be used while provisioning
|
||||
container with read only root file system to achieve a more secure pgadmin4 deployment for kubernetes.
|
||||
Note that if you are externally mapping this file, then environment variables passed using *PGADMIN_CONFIG_*
|
||||
suffix will be ignored.
|
||||
|
||||
**PGPASS_FILE**
|
||||
|
||||
*Default: <null>*
|
||||
This varible should be set to if you want to pass password using pgpass
|
||||
file for the servers added in pgadmin.
|
||||
|
||||
**GUNICORN_ACCESS_LOGFILE**
|
||||
|
||||
@@ -228,6 +251,14 @@ pgAdmin in the container. Note that server definitions are only loaded on first
|
||||
launch, i.e. when the configuration database is created, and not on subsequent
|
||||
launches using the same configuration database.
|
||||
|
||||
**/pgadmin4/preferences.json**
|
||||
|
||||
If this file is mapped, preferences defined in it will be updated at launch
|
||||
time. This allows customization of preferences settings into the instance of
|
||||
pgAdmin in the container. Note that preferences are only set on first
|
||||
launch, i.e. when the configuration database is created, and not on subsequent
|
||||
launches using the same configuration database.
|
||||
|
||||
**/certs/server.cert**
|
||||
|
||||
If TLS is enabled, this file will be used as the servers TLS certificate.
|
||||
|
||||
@@ -44,8 +44,9 @@ Use the *Definition* tab to set properties for the database:
|
||||
* Select the strategy from the drop-down listbox in the *Strategy* field while
|
||||
creating a new database. This option is available from v15 and above.
|
||||
* Select the locale provider from the drop-down listbox in the *Locale Provider*
|
||||
field to set the default collation for this database. Possible values are: icu, libc.
|
||||
This option is available from v15 and above.
|
||||
field to set the default collation for this database. Possible values are: icu, libc and builtin.
|
||||
This option is available from v15 and above. **Note:** The icu and libc options are available
|
||||
from v15 and builtin option is available from v17 onwards.
|
||||
* Select the collation order from the drop-down listbox in the *Collation* field.
|
||||
* Select the character classification from the drop-down listbox in the
|
||||
*Character Type* field. This affects the categorization of characters, e.g.
|
||||
@@ -57,6 +58,8 @@ Use the *Definition* tab to set properties for the database:
|
||||
* Specify the icu rules in the *ICU Rules* field as additional collation
|
||||
rules to customize the behavior of the default collation of this database.
|
||||
This option is available from v16 and above.
|
||||
* Select the builtin locale from the drop-down listbox in the *Builtin Locale* if the
|
||||
builtin locale provider is used. This option is available from v17 and above.
|
||||
* Specify a connection limit in the *Connection Limit* field to configure the
|
||||
maximum number of connection requests. The default value (*-1*) allows
|
||||
unlimited connections to the database.
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
.. _dbms_job:
|
||||
|
||||
*****************
|
||||
`DBMS Job`:index:
|
||||
*****************
|
||||
|
||||
Use the *DBMS Job* dialog to create a DBMS Job.
|
||||
|
||||
.. image:: images/dbms_job_general.png
|
||||
:alt: DBMS Job dialog general tab
|
||||
:align: center
|
||||
|
||||
Use the fields in the *General* tab to create job:
|
||||
|
||||
* Use the *Name* field to add a descriptive name for the job. The name will
|
||||
be displayed in the *pgAdmin* object explorer.
|
||||
* Use the *Enabled?* switch to indicate that job should be enabled or disabled.
|
||||
* Use the *Job Type* field to select the type of the job. Type could be SELF-CONTAINED or PRE-DEFINED.
|
||||
If the Job Type is Self-Contained you need to specify the action and repeat interval in the Action and Repeat tabs respectively.
|
||||
If the Job Type is Pre-Defined you need to specify the existing Program and Schedule names in the Pre-Defined tab.
|
||||
* Store notes about the job in the *Comment* field.
|
||||
|
||||
Click the *Action* tab to continue.
|
||||
|
||||
.. image:: images/dbms_job_action.png
|
||||
:alt: DBMS Job dialog action tab
|
||||
:align: center
|
||||
|
||||
Use the *Action* tab to select the action for the job. This tab is only enabled when the job type is 'SELF-CONTAINED'.
|
||||
|
||||
* Use the *Type* field to select the type of the job. Type could be PLSQL BLOCK or STORED PROCEDURE.
|
||||
* Use the *Procedure* field to select an existing procedure that executes when the job is invoked.
|
||||
* *Number of Arguments* field is read-only and indicates the quantity of arguments necessary for the chosen procedure.
|
||||
|
||||
Click the *Code* tab to continue.
|
||||
|
||||
.. image:: images/dbms_job_code.png
|
||||
:alt: DBMS Job dialog code tab
|
||||
:align: center
|
||||
|
||||
* Use the *Code* field to write the code that executes when the job is invoked.
|
||||
This tab is only enabled when the job type is 'SELF-CONTAINED' and type of the action is set to 'PLSQL BLOCK'.
|
||||
|
||||
|
||||
Click the *Arguments* tab to continue.
|
||||
|
||||
.. image:: images/dbms_job_arguments.png
|
||||
:alt: DBMS Job dialog arguments tab
|
||||
:align: center
|
||||
|
||||
* *Arguments* tab outlines the arguments required by the selected procedure in the 'Action' tab. This tab is only enabled when the job type is 'SELF-CONTAINED'.
|
||||
|
||||
|
||||
Click the *Repeat* tab to continue.
|
||||
|
||||
.. image:: images/dbms_job_repeat.png
|
||||
:alt: DBMS Job dialog repeat tab
|
||||
:align: center
|
||||
|
||||
Use the *Repeat* tab to select the repeat interval for the job. This tab is only enabled when the job type is 'SELF-CONTAINED'.
|
||||
|
||||
* Use the calendar selector in the *Start* field to specify the starting date
|
||||
and time for the job.
|
||||
* Use the calendar selector in the *End* field to specify the ending date and
|
||||
time for the job.
|
||||
* Use the *Frequency* field to select the frequency. Frequency is one of the following:
|
||||
YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY.
|
||||
* Use the *Date* field to select the date on which job will execute.Date is YYYYMMDD.
|
||||
* Use the *Months* field to select the months in which the job will execute.
|
||||
* Use the *Week Days* field to select the days on which the job will execute.
|
||||
* Use the *Month Days* field to select the numeric days on which the job will
|
||||
execute.
|
||||
* Use the *Hours* field to select the hour at which the job will execute.
|
||||
* Use the *Minutes* field to select the minute at which the job will execute.
|
||||
|
||||
Click the *Pre-Defined* tab to continue.
|
||||
|
||||
.. image:: images/dbms_job_predefined.png
|
||||
:alt: DBMS Job dialog predefined tab
|
||||
:align: center
|
||||
|
||||
Use the *Pre-Defined* tab to select the existing program and schedule to create the job.
|
||||
This tab is only enabled when the job type is 'PRE-DEFINED'.
|
||||
|
||||
* Use the *Program Name* field to select the existing program.
|
||||
* Use the *Schedule Name* field to select an existing schedule.
|
||||
|
||||
|
||||
Click the *SQL* tab to continue.
|
||||
|
||||
Your entries in the *DBMS Job* dialog generate a SQL command (see an example below).
|
||||
Use the *SQL* tab for review; revisit or switch tabs to make any changes to the
|
||||
SQL command.
|
||||
|
||||
**Example**
|
||||
|
||||
The following is an example of the sql command generated by user selections in
|
||||
the *DBMS Job* dialog:
|
||||
|
||||
.. image:: images/dbms_job_sql.png
|
||||
:alt: DBMS Job dialog sql tab
|
||||
:align: center
|
||||
|
||||
* Click the *Info* button (i) to access online help.
|
||||
* Click the *Help* button (?) to access dialog help.
|
||||
* Click the *Save* button to save work.
|
||||
* Click the *Close* button to exit without saving work.
|
||||
* Click the *Reset* button to restore configuration parameters.
|
||||
@@ -0,0 +1,45 @@
|
||||
.. _dbms_job_scheduler:
|
||||
|
||||
********************************
|
||||
`Using EDB Job Scheduler`:index:
|
||||
********************************
|
||||
|
||||
In the past versions of EPAS, DBMS_SCHEDULER or DBMS_JOBS required the configuration
|
||||
of pgAgent, an essential service for their functionality. Maintaining pgAgent in a
|
||||
production environment is cumbersome. The need for correct configuration, regular updates,
|
||||
and ensuring the service’s health added complexity.
|
||||
|
||||
EPAS 16 revolutionizes job scheduling by eliminating the need for the pgAgent component.
|
||||
The new version introduces EDB Job Scheduler which is an extension that runs the job scheduler
|
||||
as a background process for the DBMS_SCHEDULER and DBMS_JOB packages.
|
||||
|
||||
The EDB Job Scheduler has a scheduler process that starts when the database cluster starts.
|
||||
To start the scheduler process, load the EDB Job Scheduler extension using the **shared_preload_libraries**
|
||||
parameter. After you load the extension, create the extension **'edb_job_scheduler'** and **'dbms_scheduler'** using
|
||||
the CREATE EXTENSION command. The database in which you're creating the extension must be listed in the
|
||||
**edb_job_scheduler.database_list** parameter.
|
||||
|
||||
Instructions for configuring the EDB Job Scheduler can be found in the
|
||||
`Configuring EDB Job Scheduler <https://www.enterprisedb.com/docs/pg_extensions/edb_job_scheduler/configuring/>`_.
|
||||
|
||||
.. image:: images/dbms_job_scheduler.png
|
||||
:alt: DBMS Job Scheduler Object Browser
|
||||
:align: center
|
||||
|
||||
Check the status of all the jobs
|
||||
********************************
|
||||
|
||||
To check the running status of all the jobs select the 'DBMS Job Scheduler' collection node from the object
|
||||
explorer and select the Properties tab.
|
||||
|
||||
.. image:: images/dbms_job_details.png
|
||||
:alt: DBMS Job Details
|
||||
:align: center
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
dbms_job
|
||||
dbms_program
|
||||
dbms_schedule
|
||||
@@ -0,0 +1,71 @@
|
||||
.. _dbms_program:
|
||||
|
||||
*********************
|
||||
`DBMS Program`:index:
|
||||
*********************
|
||||
|
||||
Use the *DBMS Program* dialog to create a DBMS Program.
|
||||
|
||||
.. image:: images/dbms_program_general.png
|
||||
:alt: DBMS Program dialog general tab
|
||||
:align: center
|
||||
|
||||
Use the fields in the *General* tab to create program:
|
||||
|
||||
* Use the *Name* field to add a descriptive name for the program. The name will
|
||||
be displayed in the *pgAdmin* object explorer.
|
||||
* Use the *Enabled?* switch to indicate that program should be enabled or disabled.
|
||||
* Store notes about the program in the *Comment* field.
|
||||
|
||||
Click the *Action* tab to continue.
|
||||
|
||||
.. image:: images/dbms_program_action.png
|
||||
:alt: DBMS Program dialog action tab
|
||||
:align: center
|
||||
|
||||
Use the *Action* tab to select the action for the program:
|
||||
|
||||
* Use the *Type* field to select the type of the program. Type could be PLSQL BLOCK or STORED PROCEDURE.
|
||||
* Use the *Procedure* field to select an existing procedure that executes when the program is invoked.
|
||||
* *Number of Arguments* field is read-only and indicates the quantity of arguments necessary for the chosen procedure.
|
||||
|
||||
Click the *Code* tab to continue.
|
||||
|
||||
.. image:: images/dbms_program_code.png
|
||||
:alt: DBMS Program dialog code tab
|
||||
:align: center
|
||||
|
||||
* Use the *Code* field to write the code that executes when the program is invoked.
|
||||
This tab is only enabled when the type of the program is set to 'PLSQL BLOCK'.
|
||||
|
||||
|
||||
Click the *Arguments* tab to continue.
|
||||
|
||||
.. image:: images/dbms_program_arguments.png
|
||||
:alt: DBMS Program dialog arguments tab
|
||||
:align: center
|
||||
|
||||
* *Arguments* tab is a read-only section that outlines the arguments required by the selected procedure in the 'Action' tab.
|
||||
|
||||
|
||||
Click the *SQL* tab to continue.
|
||||
|
||||
Your entries in the *DBMS Program* dialog generate a SQL command (see an example below).
|
||||
Use the *SQL* tab for review; revisit or switch tabs to make any changes to the
|
||||
SQL command.
|
||||
|
||||
**Example**
|
||||
|
||||
The following is an example of the sql command generated by user selections in
|
||||
the *DBMS Program* dialog:
|
||||
|
||||
.. image:: images/dbms_program_sql.png
|
||||
:alt: DBMS Program dialog sql tab
|
||||
:align: center
|
||||
|
||||
* Click the *Info* button (i) to access online help.
|
||||
* Click the *Help* button (?) to access dialog help.
|
||||
* Click the *Save* button to save work.
|
||||
* Click the *Close* button to exit without saving work.
|
||||
* Click the *Reset* button to restore configuration parameters.
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
.. _dbms_schedule:
|
||||
|
||||
**********************
|
||||
`DBMS Schedule`:index:
|
||||
**********************
|
||||
|
||||
Use the *DBMS Schedule* dialog to create a DBMS Schedule.
|
||||
|
||||
.. image:: images/dbms_schedule_general.png
|
||||
:alt: DBMS Schedule dialog general tab
|
||||
:align: center
|
||||
|
||||
Use the fields in the *General* tab to create schedule:
|
||||
|
||||
* Use the *Name* field to add a descriptive name for the schedule. The name will
|
||||
be displayed in the *pgAdmin* object explorer.
|
||||
* Store notes about the schedule in the *Comment* field.
|
||||
|
||||
Click the *Repeat* tab to continue.
|
||||
|
||||
.. image:: images/dbms_schedule_repeat.png
|
||||
:alt: DBMS Schedule dialog repeat tab
|
||||
:align: center
|
||||
|
||||
Use the *Repeat* tab to select the repeat interval for the schedule:
|
||||
|
||||
* Use the calendar selector in the *Start* field to specify the starting date
|
||||
and time for the schedule.
|
||||
* Use the calendar selector in the *End* field to specify the ending date and
|
||||
time for the schedule.
|
||||
* Use the *Frequency* field to select the frequency. Frequency is one of the following:
|
||||
YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY.
|
||||
* Use the *Date* field to select the date on which schedule will execute.Date is YYYYMMDD.
|
||||
* Use the *Months* field to select the months in which the schedule will execute.
|
||||
* Use the *Week Days* field to select the days on which the schedule will execute.
|
||||
* Use the *Month Days* field to select the numeric days on which the schedule will
|
||||
execute.
|
||||
* Use the *Hours* field to select the hour at which the schedule will execute.
|
||||
* Use the *Minutes* field to select the minute at which the schedule will execute.
|
||||
|
||||
|
||||
Click the *SQL* tab to continue.
|
||||
|
||||
Your entries in the *DBMS Schedule* dialog generate a SQL command (see an example below).
|
||||
Use the *SQL* tab for review; revisit or switch tabs to make any changes to the
|
||||
SQL command.
|
||||
|
||||
**Example**
|
||||
|
||||
The following is an example of the sql command generated by user selections in
|
||||
the *DBMS Schedule* dialog:
|
||||
|
||||
.. image:: images/dbms_schedule_sql.png
|
||||
:alt: DBMS Schedule dialog sql tab
|
||||
:align: center
|
||||
|
||||
* Click the *Info* button (i) to access online help.
|
||||
* Click the *Help* button (?) to access dialog help.
|
||||
* Click the *Save* button to save work.
|
||||
* Click the *Close* button to exit without saving work.
|
||||
* Click the *Reset* button to restore configuration parameters.
|
||||
@@ -61,6 +61,7 @@ values required by the program:
|
||||
|
||||
.. image:: images/debug_params.png
|
||||
:alt: Debugger parameter dialog
|
||||
:align: center
|
||||
|
||||
Use the fields on the *Debugger* dialog to provide a value for each parameter:
|
||||
|
||||
@@ -100,25 +101,29 @@ The toolbar options are:
|
||||
:alt: Debugger navigation toolbar
|
||||
:align: center
|
||||
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Option | Action |
|
||||
+=========================+===========================================================================================================+
|
||||
| *Step into* | Click the *Step into* icon to execute the currently highlighted line of code. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Step over* | Click the *Step over* icon to execute a line of code, stepping over any sub-functions invoked by the code.|
|
||||
| | The sub-function executes, but is not debugged unless it contains a breakpoint. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Continue/Start* | Click the *Continue/Start* icon to execute the highlighted code, and continue until the program |
|
||||
| | encounters a breakpoint or completes. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Toggle breakpoint* | Use the *Toggle breakpoint* icon to enable or disable a breakpoint (without removing the breakpoint). |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Clear all breakpoints* | Click the *Clear all breakpoints* icon to remove all breakpoints from the program. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Stop* | Click the *Stop* icon to halt the execution of a program. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| *Help* | Click the *Help* icon to open debugger documentation. |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
.. table::
|
||||
:class: longtable
|
||||
:widths: 1 4 1
|
||||
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| Option | Action | Shortcut |
|
||||
+=========================+===========================================================================================================+========================+
|
||||
| *Step into* | Click the *Step into* icon to execute the currently highlighted line of code. | Option/Alt + Shift + I |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Step over* | Click the *Step over* icon to execute a line of code, stepping over any sub-functions invoked by the code.| Option/Alt + Shift + O |
|
||||
| | The sub-function executes, but is not debugged unless it contains a breakpoint. | |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Continue/Start* | Click the *Continue/Start* icon to execute the highlighted code, and continue until the program | Option/Alt + Shift + C |
|
||||
| | encounters a breakpoint or completes. | |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Toggle breakpoint* | Use the *Toggle breakpoint* icon to enable or disable a breakpoint (without removing the breakpoint). | Option/Alt + Shift + T |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Clear all breakpoints* | Click the *Clear all breakpoints* icon to remove all breakpoints from the program. | Option/Alt + Shift + X |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Stop* | Click the *Stop* icon to halt the execution of a program. | Option/Alt + Shift + S |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
| *Help* | Click the *Help* icon to open debugger documentation. | |
|
||||
+-------------------------+-----------------------------------------------------------------------------------------------------------+------------------------+
|
||||
|
||||
The top panel of the debugger window displays the program body; click in the
|
||||
grey margin next to a line number to add a breakpoint. The highlighted line in
|
||||
|
||||
@@ -36,43 +36,34 @@ See :ref:`config_py` for more information on configuration settings.
|
||||
Desktop Runtime Standalone Application
|
||||
======================================
|
||||
|
||||
The Desktop Runtime is based on `NWjs <https://nwjs.io/>`_ which integrates a
|
||||
The Desktop Runtime is based on `Electron <https://www.electronjs.org/>`_ which integrates a
|
||||
browser and the Python server creating a standalone application.
|
||||
|
||||
.. image:: images/runtime_standalone.png
|
||||
:alt: Runtime Standalone
|
||||
:align: center
|
||||
|
||||
Runtime Menu
|
||||
------------
|
||||
Runtime Menu Items
|
||||
------------------
|
||||
|
||||
.. image:: images/runtime_menu.png
|
||||
:alt: Runtime Menu
|
||||
:align: center
|
||||
|
||||
Use the *File Menu* to access the *Runtime Menu*:
|
||||
Use the *File Menu* to access the runtime menu items:
|
||||
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| Option | Action |
|
||||
+=========================+=========================================================================================================+
|
||||
| *Configure...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
|
||||
| *View logs...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *View log...* | Click to open the view log dialog to view the pgAdmin 4 logs. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Enter Full Screen* | Click to enter/exit the full screen mode. Keyboard Shortcuts: OSX (Cmd + Ctrl + F), Other OS (F10). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Actual Size* | Click to change the window size to it original size. Keyboard Shortcuts: OSX (Cmd + 0), |
|
||||
| | Other OS (Ctrl + 0). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Zoom In* | Click to increase the zoom level. Keyboard Shortcuts: OSX (Cmd + +), Other OS (Ctrl + +). |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
| *Zoom Out* | Click to decrease the zoom level. Keyboard Shortcuts: OSX (Cmd + -), Other OS (Ctrl + -). |
|
||||
| *Configure runtime...* | Click to open configuration dialog to configure fixed port, port number and connection timeout. |
|
||||
+-------------------------+---------------------------------------------------------------------------------------------------------+
|
||||
|
||||
Configuration Dialog
|
||||
--------------------
|
||||
|
||||
Use the *Runtime Menu* to access the *Configuration* dialog:
|
||||
Use the *Configure runtime...* option to access the *Configuration* dialog:
|
||||
|
||||
.. image:: images/runtime_configuration.png
|
||||
:alt: Runtime Configuration
|
||||
@@ -101,7 +92,7 @@ Timeout*, and 'Open Documentation in Default Browser?' configuration parameters:
|
||||
Log dialog
|
||||
----------
|
||||
|
||||
Use the *Runtime Menu* to access the *Log* dialog:
|
||||
Use the *File Menu* to access the *View Logs* dialog:
|
||||
|
||||
.. image:: images/runtime_view_log.png
|
||||
:alt: Runtime View Log
|
||||
|
||||
@@ -212,6 +212,7 @@ To add new column(s) in data sorting grid, click on the [+] icon.
|
||||
|
||||
* Use the drop-down *Column* to select the column you want to sort.
|
||||
* Use the drop-down *Order* to select the sort order for the column.
|
||||
* Use the drop-down *NULLs* to select the NULL values order for the column.
|
||||
|
||||
To delete a row from the grid, click the trash icon.
|
||||
|
||||
|
||||
@@ -48,9 +48,9 @@ File Options
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| Icon | Behavior | Shortcut |
|
||||
+======================+===================================================================================================+================+
|
||||
| *Open File* | Click the *Open File* icon to load a previously saved diagram. | Ctrl + O |
|
||||
| *Open File* | Click the *Open File* icon to load a previously saved diagram. | Cmd/Ctrl + O |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Save* | Click the *Save* icon to perform a quick-save of a previously saved diagram, or to save the | Ctrl + S |
|
||||
| *Save* | Click the *Save* icon to perform a quick-save of a previously saved diagram, or to save the | Cmd/Ctrl + S |
|
||||
| | diagram to a file. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Save as* | Click the *Save As* to open a new browser dialog and specify a new location to save the diagram. | Ctrl + Shift + |
|
||||
@@ -67,13 +67,13 @@ Export Options
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| Icon | Behavior | Shortcut |
|
||||
+======================+===================================================================================================+================+
|
||||
| *Generate SQL* | Click the *Generate SQL* icon to generate the DDL SQL for the diagram and open a query tool | Option + Ctrl +|
|
||||
| | with the generated SQL ready for execution. | S |
|
||||
| *Generate SQL* | Click the *Generate SQL* icon to generate the DDL SQL for the diagram and open a query tool | Option/Alt + |
|
||||
| | with the generated SQL ready for execution. | Ctrl + S |
|
||||
| | You can select the option *With DROP Table* if you wish to have DROP Table DDL statements before | |
|
||||
| | each CREATE Table DDL. You can see the option by clicking the down arrow beside the SQL button. | |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
| *Download image* | Click the *Download image* icon to save the ERD diagram in a image formate | Option + Ctrl +|
|
||||
| | | I |
|
||||
| *Download image* | Click the *Download image* icon to save the ERD diagram in a image formate | Option/Alt + |
|
||||
| | | Ctrl + I |
|
||||
+----------------------+---------------------------------------------------------------------------------------------------+----------------+
|
||||
|
||||
Editing Options
|
||||
|
||||
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 188 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 47 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 337 KiB After Width: | Height: | Size: 282 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 115 KiB |
|
After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 155 KiB |
|
After Width: | Height: | Size: 68 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 179 KiB After Width: | Height: | Size: 190 KiB |
|
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 214 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 84 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 209 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 238 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 126 KiB |