71 lines
2.2 KiB
Batchfile
71 lines
2.2 KiB
Batchfile
|
|
@echo off
|
||
|
|
setlocal
|
||
|
|
|
||
|
|
:: ============================================================
|
||
|
|
:: Skyrama TUI - sqlc code generator
|
||
|
|
:: Run this from the skyrama-tui\ root folder whenever you
|
||
|
|
:: change sql\schema.sql or sql\queries.sql.
|
||
|
|
::
|
||
|
|
:: Output goes to: internal\db\ (db.go, models.go, query.sql.go)
|
||
|
|
:: ============================================================
|
||
|
|
|
||
|
|
cd /d "%~dp0"
|
||
|
|
|
||
|
|
:: ── 1. Make sure sqlc is installed ───────────────────────────
|
||
|
|
where sqlc >nul 2>&1
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo.
|
||
|
|
echo [*] sqlc not found. Installing via go install...
|
||
|
|
echo ^(requires Go 1.21+ and an internet connection^)
|
||
|
|
echo.
|
||
|
|
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo.
|
||
|
|
echo [ERROR] Could not install sqlc automatically.
|
||
|
|
echo.
|
||
|
|
echo Manual options:
|
||
|
|
echo A^) go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
|
||
|
|
echo B^) Download the Windows binary from:
|
||
|
|
echo https://github.com/sqlc-dev/sqlc/releases/latest
|
||
|
|
echo and place sqlc.exe somewhere on your PATH.
|
||
|
|
echo.
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
echo [OK] sqlc installed.
|
||
|
|
echo.
|
||
|
|
)
|
||
|
|
|
||
|
|
:: ── 2. Show the sqlc version we're using ─────────────────────
|
||
|
|
echo [*] Using:
|
||
|
|
sqlc version
|
||
|
|
echo.
|
||
|
|
|
||
|
|
:: ── 3. Run the generator ─────────────────────────────────────
|
||
|
|
echo [*] Generating Go code from sql\schema.sql + sql\queries.sql ...
|
||
|
|
sqlc generate
|
||
|
|
if errorlevel 1 (
|
||
|
|
echo.
|
||
|
|
echo [ERROR] sqlc generate failed. Fix the errors above, then re-run.
|
||
|
|
echo.
|
||
|
|
echo Common causes:
|
||
|
|
echo - SQL syntax error in sql\queries.sql
|
||
|
|
echo - Query references a column that does not exist in sql\schema.sql
|
||
|
|
echo - Missing -- name: QueryName :one/many/exec annotation
|
||
|
|
echo.
|
||
|
|
pause
|
||
|
|
exit /b 1
|
||
|
|
)
|
||
|
|
|
||
|
|
echo.
|
||
|
|
echo [OK] Done! Generated files are in internal\db\
|
||
|
|
echo db.go - DB and Querier interface
|
||
|
|
echo models.go - Struct types for every table
|
||
|
|
echo query.sql.go - One function per named query
|
||
|
|
echo.
|
||
|
|
echo Rebuild the app now:
|
||
|
|
echo run.bat
|
||
|
|
echo.
|
||
|
|
pause >nul
|
||
|
|
|
||
|
|
endlocal
|