Files

2.2 KiB

think.greaterchiangmai.com

Two Laravel 10 apps sharing one MySQL database (greaterc_db2024):

  • think.greaterchiangmai.com/ — public site
  • think-backend.greaterchiangmai.com/ — CMS (/login)
  • upload-large-file/ — standalone S3 multipart upload helper (Node)

Local development

Requires Nix with flakes.

nix run                # installs vendors on first run, starts MariaDB, serves both apps; Ctrl-C stops all

Database

The schema is owned by the CMS: think-backend.greaterchiangmai.com/database/migrations/ (10 tables; no category table — category_id 1/2 is hardcoded). dev db start runs artisan migrate there on every start, so a fresh checkout serves empty pages with no 500s.

2025_11_03_000000_create_content_tables is a baseline that reproduces the production tables byte-for-byte (verified by diffing mariadb-dump --no-data against the prod export); its creates are guarded with Schema::hasTable, so running migrate on production only records it. Add new migrations in the backend for any schema change; the site app has none.

Real content: drop the production export at .dev/greaterc_db2024.sql (or the .sql.zip phpMyAdmin produced — it's unzipped on demand; both are git-ignored). A fresh DB seeds itself from it on first nix run; existing data is never overwritten on restart.

nix run . -- db reset                 # wipe + reseed from the dump (or empty schema if none)
nix run . -- db import other.sql      # load a different dump
DEV_DB_DUMP=/path/to/x.sql nix run    # use a dump elsewhere

nix run . -- <cmd> forwards to the dev script; nix develop drops you into a shell with dev, php, composer, mariadb, node on PATH (direnv: .envrc → use flake).

Other commands: dev db start|stop|status|shell|reset|import, dev serve frontend|backend, dev artisan <app> ..., dev down. See dev help.

The local DB listens on 127.0.0.1:3307 (override with DEV_DB_PORT); the dev script injects DB_*, APP_DEBUG=true, TEST_LOCAL=true via the process environment so each app's .env is left untouched. Ports: DEV_FRONTEND_PORT, DEV_BACKEND_PORT.