Ported the project from sqlite to postgres
This commit is contained in:
parent
d397b5c1ed
commit
29c1fc8f82
23 changed files with 566 additions and 409 deletions
72
justfile
72
justfile
|
@ -1,76 +1,60 @@
|
|||
runtime := "podman"
|
||||
|
||||
# Builds a debug container and runs it
|
||||
dev: start-debug
|
||||
@echo "Cd into client and run 'npm run dev' to start the client in dev mode."
|
||||
|
||||
[private]
|
||||
npm-install directory:
|
||||
cd {{directory}} && npm install
|
||||
|
||||
# Builds the client with npm (result in client/dist)
|
||||
[private]
|
||||
npm-build directory: (npm-install directory)
|
||||
cd {{directory}} && npm run build
|
||||
@echo "Built client at {{directory}}/dist"
|
||||
|
||||
# Builds a debug container
|
||||
[private]
|
||||
build-container-server-debug:
|
||||
{{runtime}} build -t fb-server-debug -f container/ContainerfileDebug .
|
||||
podman build -t fb-server-debug -f container/ContainerfileDebug .
|
||||
|
||||
# Builds a debug container and runs it
|
||||
[private]
|
||||
start-debug: build-container-server-debug remove-podman-containers
|
||||
{{runtime}} run -d -e DATABASE_URL=sqlite:debug.db -p 8080:8080 --name frostbyte-debug fb-server-debug
|
||||
start-debug: start-postgres-dev clean-podman init-sqlx build-container-server-debug
|
||||
podman network create fb_network --ignore
|
||||
podman run -d --network fb_network -e DATABASE_URL=postgres://postgres:password@postgres:5432/frostbyte -p 8080:8080 --name frostbyte-debug fb-server-debug
|
||||
@echo "Debug server started."
|
||||
|
||||
# Builds a release container
|
||||
[private]
|
||||
build-container-release:
|
||||
{{runtime}} build -t fb-server -f container/Containerfile .
|
||||
podman build -t fb-server -f container/Containerfile .
|
||||
|
||||
# Builds a release container and runs it
|
||||
start-release: build-container-release remove-podman-containers
|
||||
{{runtime}} network create fb_network --ignore
|
||||
{{runtime}} run -d --network fb_network -e DATABASE_URL=sqlite:release.db -p 8080:8080 --name frostbyte fb-server
|
||||
start-release: start-postgres-dev clean-podman init-sqlx build-container-release
|
||||
podman network create fb_network --ignore
|
||||
podman run -d --network fb_network -e DATABASE_URL=postgres://postgres:password@postgres:5432/frostbyte -p 8080:8080 --name frostbyte fb-server
|
||||
|
||||
# Initializes the database, runs migrations and then prepares sqlx
|
||||
init-sqlx:
|
||||
echo "DATABASE_URL=sqlite:debug.db" > server/.env
|
||||
cd server && sqlx database create
|
||||
cd server && sqlx migrate run
|
||||
echo "DATABASE_URL=postgres://postgres:password@localhost:5432/frostbyte" > server/.env
|
||||
cd server && sqlx database create --connect-timeout 40 # Postgres takes a while to start up
|
||||
cd server && sqlx migrate run --source migrations_pg
|
||||
cd server && cargo sqlx prepare
|
||||
|
||||
# Removes and stops any containers related to the project
|
||||
# Starts a postgres container for development
|
||||
[private]
|
||||
remove-podman-containers:
|
||||
{{runtime}} network rm -f fb_network
|
||||
{{runtime}} container rm -f frostbyte
|
||||
{{runtime}} container rm -f frostbyte-debug
|
||||
start-postgres-dev:
|
||||
podman rm -f postgres
|
||||
podman run --network fb_network --name postgres -e POSTGRES_PASSWORD=password -d -p 5432:5432 docker.io/postgres:16.1-alpine
|
||||
|
||||
# Deletes everything podman related (even unrelated to the project)
|
||||
# Forcefully stops and removes the frostbyte container
|
||||
[private]
|
||||
prune-podman:
|
||||
{{runtime}} stop -a
|
||||
{{runtime}} rm -af
|
||||
{{runtime}} image rm -af
|
||||
{{runtime}} system prune -af
|
||||
{{runtime}} system reset --force
|
||||
clean-podman:
|
||||
podman container rm -f frostbyte
|
||||
podman container rm -f frostbyte-debug
|
||||
|
||||
# Forcefully removes the frostbyte images
|
||||
[private]
|
||||
clean-images:
|
||||
podman image rm -f fb-server
|
||||
podman image rm -f fb-server-debug
|
||||
|
||||
# Cleans up everything related to the project
|
||||
clean:
|
||||
{{runtime}} container rm -f frostbyte
|
||||
{{runtime}} container rm -f frostbyte-debug
|
||||
{{runtime}} image rm -f fb-server
|
||||
{{runtime}} image rm -f fb-server-debug
|
||||
clean: clean-podman clean-images
|
||||
rm -rf client/dist
|
||||
rm -rf client/node_modules
|
||||
rm -rf client-solid/dist
|
||||
rm -rf client-solid/node_modules
|
||||
rm -rf server/public
|
||||
rm -rf server/target
|
||||
@echo "Cleaned up! Make sure to run 'just nuke' to nuke everything podman related."
|
||||
|
||||
# Nukes everything. No mercy. Leave no trace.
|
||||
nuke: clean prune-podman
|
||||
@echo "Nuked everything! You're starting from scratch now."
|
||||
@echo "Cleaned up! Make sure to clean up podman volumes and networks."
|
Loading…
Add table
Add a link
Reference in a new issue