Fix small typo in documentation

Also make sure the migrations run in order. Sets are unordered and thus can't guarantee the expected sorted order required in migrations.
This commit is contained in:
Bruno Bernardino
2025-02-21 17:47:46 +00:00
parent 5c3af00c24
commit 869e712432
2 changed files with 6 additions and 6 deletions

View File

@@ -20,7 +20,7 @@ Download/copy [`docker-compose.yml`](/docker-compose.yml) and [`.env.sample`](/.
```sh ```sh
$ mkdir data-files # local directory for storing user-uploaded files $ mkdir data-files # local directory for storing user-uploaded files
$ chown -R 1993:1993 data-files # solves permission related issues $ sudo chown -R 1993:1993 data-files # solves permission related issues in the container with uploading files
$ docker compose up -d # makes the app available at http://localhost:8000 $ docker compose up -d # makes the app available at http://localhost:8000
$ docker compose run --rm website bash -c "cd /app && make migrate-db" # initializes/updates the database (only needs to be executed the first time and on any updates) $ docker compose run --rm website bash -c "cd /app && make migrate-db" # initializes/updates the database (only needs to be executed the first time and on any updates)
``` ```

View File

@@ -14,7 +14,7 @@ interface Migration {
executed_at: Date; executed_at: Date;
} }
async function getExecutedMigrations() { async function getExecutedMigrations(): Promise<Set<string>> {
const executedMigrations = new Set( const executedMigrations = new Set(
Array.from( Array.from(
(await db.query<Migration>(sql`SELECT * FROM "bewcloud_migrations" ORDER BY "name" ASC`)).map((migration) => (await db.query<Migration>(sql`SELECT * FROM "bewcloud_migrations" ORDER BY "name" ASC`)).map((migration) =>
@@ -26,7 +26,7 @@ async function getExecutedMigrations() {
return executedMigrations; return executedMigrations;
} }
async function getMissingMigrations() { async function getMissingMigrations(): Promise<string[]> {
const existingMigrations: Set<string> = new Set(); const existingMigrations: Set<string> = new Set();
for await (const migrationFile of migrationsDirectory) { for await (const migrationFile of migrationsDirectory) {
@@ -60,10 +60,10 @@ async function getMissingMigrations() {
// The table likely doesn't exist, so run everything. // The table likely doesn't exist, so run everything.
} }
return migrationsToExecute; return Array.from(migrationsToExecute).sort();
} }
async function runMigrations(missingMigrations: Set<string>) { async function runMigrations(missingMigrations: string[]): Promise<void> {
for (const missingMigration of missingMigrations) { for (const missingMigration of missingMigrations) {
console.log(`Running "${missingMigration}"...`); console.log(`Running "${missingMigration}"...`);
@@ -90,7 +90,7 @@ try {
await runMigrations(missingMigrations); await runMigrations(missingMigrations);
if (missingMigrations.size === 0) { if (missingMigrations.length === 0) {
console.log('No migrations to run!'); console.log('No migrations to run!');
} }