db migration
testing live in another VM environment for self hosting Signed-off-by: Kenneth Obsequio <k80308392@gmail.com>
This commit is contained in:
@@ -9,9 +9,9 @@ module.exports = {
|
||||
await queryInterface.sequelize.query(`
|
||||
CREATE TABLE completion_requirements (
|
||||
requirement_id UUID PRIMARY KEY,
|
||||
entity_type STRING NOT NULL,
|
||||
entity_type TEXT NOT NULL,
|
||||
entity_id BIGINT NOT NULL,
|
||||
type STRING NOT NULL,
|
||||
type TEXT NOT NULL,
|
||||
min_percent INTEGER NULL,
|
||||
button_label STRING NULL,
|
||||
is_required BOOLEAN NOT NULL DEFAULT true,
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ module.exports = {
|
||||
progress_id UUID PRIMARY KEY,
|
||||
requirement_id UUID NOT NULL REFERENCES completion_requirements (requirement_id) ON DELETE CASCADE,
|
||||
user_id BIGINT NOT NULL REFERENCES users (user_id) ON DELETE CASCADE,
|
||||
entity_type STRING NOT NULL,
|
||||
entity_type TEXT NOT NULL,
|
||||
entity_id BIGINT NOT NULL,
|
||||
progress_percent INTEGER NULL,
|
||||
completed BOOLEAN NOT NULL DEFAULT false,
|
||||
|
||||
@@ -13,7 +13,7 @@ module.exports = {
|
||||
position_id UUID PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL REFERENCES users (user_id) ON DELETE CASCADE,
|
||||
lesson_id BIGINT NOT NULL REFERENCES lessons (lesson_id) ON DELETE CASCADE,
|
||||
block_id STRING NOT NULL,
|
||||
block_id TEXT NOT NULL,
|
||||
percent INTEGER NOT NULL,
|
||||
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
+1
-1
@@ -41,7 +41,7 @@ module.exports = {
|
||||
|
||||
await queryInterface.sequelize.query(`
|
||||
ALTER TABLE advertisements
|
||||
ALTER COLUMN badge_label TYPE STRING(100)
|
||||
ALTER COLUMN badge_label TYPE TEXT
|
||||
USING (
|
||||
CASE
|
||||
WHEN jsonb_array_length(badge_label) = 0 THEN NULL
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
# Wraps the Garage daemon: starts it in the background, runs one-time cluster
|
||||
# initialization using the local RPC connection, then hands control back to
|
||||
# the daemon process. Safe to re-run — all operations are idempotent.
|
||||
set -e
|
||||
|
||||
garage server &
|
||||
DAEMON_PID=$!
|
||||
|
||||
echo "Waiting for Garage to be ready..."
|
||||
until garage status > /dev/null 2>&1; do
|
||||
sleep 2
|
||||
done
|
||||
echo "Garage is up. Running cluster initialization..."
|
||||
|
||||
NODE_ID=$(garage node id 2>/dev/null | head -1 | awk '{print $1}')
|
||||
garage layout assign "$NODE_ID" -z dc1 -c 100G 2>/dev/null || true
|
||||
garage layout apply --version 1 2>/dev/null || true
|
||||
|
||||
garage bucket create "$S3_BUCKET" 2>/dev/null || true
|
||||
|
||||
# --yes skips the interactive confirmation prompt.
|
||||
garage key import "$S3_ACCESS_KEY" "$S3_SECRET_KEY" -n starr-app --yes 2>/dev/null || true
|
||||
|
||||
garage bucket allow "$S3_BUCKET" --read --write --owner --key "$S3_ACCESS_KEY" 2>/dev/null || true
|
||||
|
||||
# Flag file read by the healthcheck — ensures the backend waits for full init.
|
||||
touch /var/lib/garage/meta/.ready
|
||||
echo "Garage init complete."
|
||||
|
||||
wait $DAEMON_PID
|
||||
+6
-6
@@ -82,21 +82,21 @@ services:
|
||||
# to serve S3_PUBLIC_URL (e.g. https://cdn.yourdomain.com → http://garage:3900).
|
||||
# GARAGE_RPC_SECRET must be set in .env (generate with: openssl rand -hex 32).
|
||||
#
|
||||
# garage-init.sh starts the daemon in the background, runs one-time cluster
|
||||
# initialization (layout, bucket, key), then hands control back to the daemon.
|
||||
# The dxflrs/garage image ships only the static `garage` binary — no shell,
|
||||
# so it can't run garage-init.sh (and CMD-SHELL healthchecks can't run
|
||||
# either, same reason). Cluster init (layout/bucket/key) is a one-time
|
||||
# manual step after first `docker compose up` — see README/setup notes.
|
||||
garage:
|
||||
image: dxflrs/garage
|
||||
entrypoint: ["/bin/sh", "/garage-init.sh"]
|
||||
image: dxflrs/garage:v2.3.0
|
||||
volumes:
|
||||
- ./apps/api/config/garage.toml:/etc/garage.toml:ro
|
||||
- ./apps/api/scripts/garage-init.sh:/garage-init.sh:ro
|
||||
- garage_meta:/var/lib/garage/meta
|
||||
- garage_data:/var/lib/garage/data
|
||||
ports:
|
||||
- "3900:3900"
|
||||
env_file: apps/api/.env
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "test -f /var/lib/garage/meta/.ready && garage status > /dev/null 2>&1"]
|
||||
test: ["CMD", "/garage", "status"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
|
||||
Reference in New Issue
Block a user