Skip to content

Commit 8bc5f75

Browse files
committed
setting PGPORT and PGDATABSE specifically for each server and allowing index WIP requests to talk to server while it is being built up
1 parent 91ef1a8 commit 8bc5f75

15 files changed

+50
-22
lines changed

.github/workflows/ci.yaml

+4-3
Original file line numberDiff line numberDiff line change
@@ -374,9 +374,10 @@ jobs:
374374
env:
375375
NODE_OPTIONS: --max_old_space_size=4096
376376
working-directory: packages/host
377-
- name: Start matrix
378-
run: pnpm start:matrix &
379-
working-directory: packages/realm-server
377+
# TODO we shouldn't have to start matrix separately
378+
# - name: Start matrix
379+
# run: pnpm start:matrix &
380+
# working-directory: packages/realm-server
380381
- name: Start realm servers
381382
run: PG_INDEXER=true pnpm start:all &
382383
working-directory: packages/realm-server

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,12 @@ Boxel uses a Postgres database. In development, the Postgres database runs withi
115115

116116
When running tests we isolate the database between each test run by actually creating a new database for each test with a random database name (e.g. `test_db_1234567`). The test databases are dropped before the beginning of each test run.
117117

118-
If you wish to drop the development database you can execute:
118+
If you wish to drop the development databases you can execute:
119119
```
120-
pnpm drop-db
120+
pnpm drop-all-dbs
121121
```
122122

123-
You can then run `pnpm migrate up` or start the realm server to create the database again.
123+
You can then run `PGDATABASE=boxel_dev pnpm migrate up` (with `PGDATABASE` set accordingly) or start the realm server to create the database again.
124124

125125
#### DB Migrations
126126
When the realm server starts up it will automatically run DB migrations that live in the `packages/realm-server/migrations` folder. As part of development you may wish to run migrations manually as well as to create a new migration.

packages/matrix/scripts/register-realm-users.sh

-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
#! /bin/sh
2-
set -x
3-
4-
echo "starting register realm users"
52

63
until $(curl --output /dev/null --silent --head --fail http://localhost:8008); do
74
printf '.'
8-
curl_output=$(curl --head --fail http://localhost:8008)
95
sleep 5
106
done
11-
echo "matrix server is up"
127
MATRIX_USERNAME=base_realm MATRIX_PASSWORD=password ts-node --transpileOnly ./scripts/register-test-user.ts
138
MATRIX_USERNAME=drafts_realm MATRIX_PASSWORD=password ts-node --transpileOnly ./scripts/register-test-user.ts
149
MATRIX_USERNAME=published_realm MATRIX_PASSWORD=password ts-node --transpileOnly ./scripts/register-test-user.ts

packages/realm-server/Dockerfile

+1
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ RUN CI=1 pnpm install -r --offline
2121

2222
EXPOSE 3000
2323

24+
# TODO need to set the PG ENV vars to connect to the DB in the command below
2425
CMD pnpm --filter "./packages/realm-server" $realm_server_script

packages/realm-server/package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@
8080
"setup:drafts-in-deployment": "mkdir -p /persistent/drafts && cp --verbose --update --recursive ../drafts-realm/. /persistent/drafts/",
8181
"setup:published-in-deployment": "mkdir -p /persistent/published && cp --verbose --update --recursive ../published-realm/. /persistent/published/",
8282
"setup:base-assets": "ts-node --transpileOnly ./scripts/setup-base.ts",
83-
"start": "PGPORT=5435 NODE_NO_WARNINGS=1 ts-node --transpileOnly main",
83+
"start": "PGPORT=5435 PGDATABASE=boxel_dev NODE_NO_WARNINGS=1 ts-node --transpileOnly main",
8484
"start:base": "./scripts/start-base.sh",
8585
"start:test-realms": "./scripts/start-test-realms.sh",
8686
"start:base:root": "./scripts/start-base-root.sh",
8787
"start:drafts:root": "./scripts/start-drafts-root.sh",
88-
"start:all": "PGPORT=5435 ./scripts/start-all.sh",
89-
"start:without-matrix": "PGPORT=5435 ./scripts/start-without-matrix.sh",
88+
"start:all": "./scripts/start-all.sh",
89+
"start:without-matrix": "./scripts/start-without-matrix.sh",
9090
"start:staging": "./scripts/start-staging.sh",
9191
"start:development": "./scripts/start-development.sh",
9292
"start:production": "./scripts/start-production.sh",
@@ -98,7 +98,8 @@
9898
"lint:glint": "glint",
9999
"migrate": "PGDATABASE=boxel ./scripts/ensure-db-exists.sh && PGPORT=5435 PGDATABASE=boxel PGUSER=postgres node-pg-migrate",
100100
"make-schema": "./scripts/schema-dump.sh",
101-
"drop-db": "docker exec boxel-pg dropdb -U postgres -w boxel"
101+
"drop-db": "docker exec boxel-pg dropdb -U postgres -w",
102+
"drop-all-dbs": "./scripts/drop-all-dbs.sh"
102103
},
103104
"volta": {
104105
"extends": "../../package.json"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#! /bin/sh
2+
3+
pnpm run drop-db boxel_dev
4+
pnpm run drop-db boxel_test
5+
pnpm run drop-db boxel_dev_base
6+
pnpm run drop-db boxel_test_base_root
7+
pnpm run drop-db boxel_test_drafts_root
8+
pnpm run drop-db boxel_test_drafts_root

packages/realm-server/scripts/start-base-root.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#! /bin/sh
22

3-
NODE_ENV=development NODE_NO_WARNINGS=1 REALM_SECRET_SEED="shhh! it's a secret" ts-node \
3+
NODE_ENV=development \
4+
NODE_NO_WARNINGS=1 \
5+
PGPORT=5435 \
6+
PGDATABASE=boxel_test_base_root \
7+
REALM_SECRET_SEED="shhh! it's a secret" \
8+
ts-node \
49
--transpileOnly main \
510
--port=4203 \
611
\

packages/realm-server/scripts/start-base.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
pnpm run setup:base-assets
44

5-
NODE_ENV=development NODE_NO_WARNINGS=1 REALM_SECRET_SEED="shhh! it's a secret" ts-node \
5+
NODE_ENV=development \
6+
NODE_NO_WARNINGS=1 \
7+
PGPORT=5435 \
8+
PGDATABASE=boxel_dev_base \
9+
REALM_SECRET_SEED="shhh! it's a secret" \
10+
ts-node \
611
--transpileOnly main \
712
--port=4201 \
813
\

packages/realm-server/scripts/start-development.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
pnpm setup:base-assets
33
NODE_ENV=development \
44
NODE_NO_WARNINGS=1 \
5+
PGPORT=5435 \
6+
PGDATABASE=boxel_dev \
57
LOG_LEVELS='*=info' \
68
REALM_SECRET_SEED="shhh! it's a secret" \
7-
PGPORT="5435" \
89
ts-node \
910
--transpileOnly main \
1011
--port=4201 \

packages/realm-server/scripts/start-drafts-root.sh

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#! /bin/sh
22

3-
NODE_NO_WARNINGS=1 REALM_SECRET_SEED="shhh! it's a secret" ts-node \
3+
NODE_NO_WARNINGS=1 \
4+
PGPORT=5435 \
5+
PGDATABASE=boxel_test_drafts_root \
6+
REALM_SECRET_SEED="shhh! it's a secret" \
7+
ts-node \
48
--transpileOnly main \
59
--port=4204 \
610
\

packages/realm-server/scripts/start-production.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
pnpm setup:base-in-deployment
33
pnpm setup:drafts-in-deployment
44
pnpm setup:published-in-deployment
5-
NODE_NO_WARNINGS=1 LOG_LEVELS='*=info' ts-node \
5+
NODE_NO_WARNINGS=1 \
6+
LOG_LEVELS='*=info' \
7+
ts-node \
68
--transpileOnly main \
79
--port=3000 \
810
\

packages/realm-server/scripts/start-staging.sh

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
pnpm setup:base-in-deployment
33
pnpm setup:drafts-in-deployment
44
pnpm setup:published-in-deployment
5-
NODE_NO_WARNINGS=1 LOG_LEVELS='*=info' ts-node \
5+
NODE_NO_WARNINGS=1 \
6+
LOG_LEVELS='*=info' \
7+
ts-node \
68
--transpileOnly main \
79
--port=3000 \
810
\

packages/realm-server/scripts/start-test-realms.sh

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#! /bin/sh
22

33
NODE_ENV=test \
4+
PGPORT=5435 \
5+
PGDATABASE=boxel_test \
46
NODE_NO_WARNINGS=1 \
57
REALM_SECRET_SEED="shhh! it's a secret" \
68
PGPORT="5435" \

packages/runtime-common/realm.ts

+2
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,8 @@ export class Realm {
837837
if (redirectResponse) {
838838
return redirectResponse;
839839
}
840+
// allow any WIP index requests to query the index while it's building up
841+
isLocal = isLocal || Boolean(request.headers.get('X-Boxel-Use-WIP-Index'));
840842

841843
try {
842844
// local requests are allowed to query the realm as the index is being built up

packages/runtime-common/worker.ts

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ export class Worker {
8787
this.runnerOptsMgr = runnerOptsManager;
8888
this.#runner = indexRunner;
8989
this.#loader = Loader.cloneLoader(loader);
90-
this.#realmAdapter.setLoader?.(this.#loader);
9190
}
9291

9392
async run() {

0 commit comments

Comments
 (0)