Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial database schema #53

Draft
wants to merge 73 commits into
base: v5-develop
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
2d57521
Continue adding init database sql, and add inheritance tables
mitchdowney Aug 12, 2024
6f21f91
Continue adding initial database schema
mitchdowney Aug 14, 2024
b18ccdf
Rename Podcasting 2.0 database init file
mitchdowney Aug 14, 2024
173ef69
Add categories and missing NOT NULL to relationships
mitchdowney Aug 14, 2024
b156bd9
Add account table
mitchdowney Aug 14, 2024
3f4d5c3
Set varchar_long to 2500; add chapter hash column
mitchdowney Aug 14, 2024
ddbc6f2
Add unique id to inherits tables that can only have one row per forei…
mitchdowney Aug 14, 2024
f9f08c0
Add clip table
mitchdowney Aug 14, 2024
f33f1c0
Add sharable_status to account and clip
mitchdowney Aug 14, 2024
3c1001a
Fix item_chapter reference
mitchdowney Aug 14, 2024
bcaa8d8
Add playlist and playlist_item tables
mitchdowney Aug 14, 2024
cb89380
Rename clip table to item_clip
mitchdowney Aug 14, 2024
858c505
Remove extra linebreaks
mitchdowney Aug 14, 2024
ee46019
Change short_id to short_id_v2
mitchdowney Aug 15, 2024
54b4edb
Rename item_clip to clip
mitchdowney Aug 15, 2024
02436e6
Add playlist_item_item_add_by_rss table
mitchdowney Aug 15, 2024
b9eb4a6
Rename playlist_item to playlist_content
mitchdowney Aug 15, 2024
4478fe3
More initial helpers to their own sql file
mitchdowney Aug 15, 2024
e7911f3
Add updated_at handling to a couple columns
mitchdowney Aug 15, 2024
075f34d
Add now_playing_content table
mitchdowney Aug 15, 2024
1c45c62
Add queue_content table
mitchdowney Aug 15, 2024
59f6827
Fix invalid table names
mitchdowney Aug 15, 2024
38c2bf7
Add cascade delete rules to account sub-tables
mitchdowney Aug 17, 2024
8264b6b
Continue initial database
mitchdowney Aug 17, 2024
3d1b899
Add missing id serial to category
mitchdowney Aug 17, 2024
e667ce0
Rename playlist_content to playlist_resource
mitchdowney Aug 17, 2024
6787cee
Replace most INHERITS tables with separate tables
mitchdowney Aug 17, 2024
53e9244
Add account_following tables
mitchdowney Aug 18, 2024
9c5b2d5
Add notes and cleanup 0001 migration
mitchdowney Aug 18, 2024
22f4a8b
Move database sql files into migrations directory
mitchdowney Aug 18, 2024
00fc443
Add combine_all_migrations script
mitchdowney Aug 18, 2024
f8d42a6
Add headers to migration files
mitchdowney Aug 18, 2024
128ac6d
Add notification tables including up_device and fcm_device
mitchdowney Aug 18, 2024
93375b9
Add paypal, apple, and google purchase tables
mitchdowney Aug 18, 2024
5c641ec
Add account_claim_token table
mitchdowney Aug 18, 2024
338c9ca
Update init_database.sql
mitchdowney Aug 18, 2024
a5df4c1
Continue updating initial database migrations
mitchdowney Aug 19, 2024
a855946
Remove bigint timestamp columns
mitchdowney Aug 21, 2024
082c756
Updates to 0001 sql columns
mitchdowney Aug 27, 2024
165198c
Update 0001 channel columns
mitchdowney Aug 27, 2024
f121021
Make channel title optional
mitchdowney Aug 27, 2024
474df58
Update txt table names and columns
mitchdowney Aug 29, 2024
3c615e3
Change value_tag to value
mitchdowney Aug 29, 2024
4761e32
Remove unnecessary channel_value_time_split tables
mitchdowney Aug 29, 2024
231435b
Change medium_value to medium
mitchdowney Aug 30, 2024
3252aec
Change medium_value to medium; add guid_enclosure_url to item
mitchdowney Aug 30, 2024
4e8887f
Update comment
mitchdowney Aug 30, 2024
1ba48d3
Add item_chapters_feed_log
mitchdowney Aug 30, 2024
e105f5c
Remove unused item_chapters_feed log columns
mitchdowney Aug 30, 2024
9b293ed
Add missing column to item_Person and item_season_episode
mitchdowney Aug 30, 2024
23af605
Remove url column from item_soundbite
mitchdowney Aug 30, 2024
571438a
Use numeric instead of integer for player times
mitchdowney Aug 30, 2024
c441896
Fix typos in "recipient" spelling
mitchdowney Aug 31, 2024
8915aa8
Update item_season_episode table
mitchdowney Aug 31, 2024
dae2c66
Make protocol column required in chat tables
mitchdowney Aug 31, 2024
e5f05bf
Add last_parsed_file_hash column to feed table
mitchdowney Sep 1, 2024
336c3bc
Fix item_chapter column name id_text
mitchdowney Sep 1, 2024
15bb606
Remove item_chapter_image table
mitchdowney Sep 1, 2024
868ae77
Update feed_log
mitchdowney Sep 1, 2024
4a30352
Add podverse_queue and podverse_workers to docker compose
mitchdowney Sep 6, 2024
908d3d7
Rename podverse_queue to podverse_amqp
mitchdowney Sep 7, 2024
a540f55
Remove podverse_workers from makefile
mitchdowney Sep 7, 2024
a38ae57
Change podverse_queue to podverse_amqp
mitchdowney Sep 7, 2024
4b51c3e
Add podverse_network to docker-compose file
mitchdowney Sep 7, 2024
9e9d519
Add podverse_workers_debug
mitchdowney Sep 7, 2024
d206bac
Add npm-link-modules.sh and add example env files
mitchdowney Sep 8, 2024
f5876b5
Add dev/local-dev-setup.md; Attach init_database.sql file to podverse…
mitchdowney Sep 8, 2024
c73a129
Update env examples; update npm-link-modules.sh; update docker-compos…
mitchdowney Sep 9, 2024
0f90c1c
Update npm-link-modules.sh
mitchdowney Sep 9, 2024
dc82f5a
Add foreign key indexes
mitchdowney Sep 19, 2024
250e6dd
Add comments to npm-link-modules.sh
mitchdowney Sep 19, 2024
608c460
Update npm-link-modules
mitchdowney Sep 21, 2024
bf2403f
Fix OneToOne unique relationships; add indexes to remote_item tables
mitchdowney Sep 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ truffle.log

.vscode/terminals.json

config/podverse-api-local.env
config/podverse-db-local.env
config/podverse-web-local.env
config/podverse-amqp.env
config/podverse-api.env
config/podverse-db.env
config/podverse-web.env
config/podverse-workers.env

config/podverse-db-sandbox.env

Expand Down
38 changes: 22 additions & 16 deletions .vscode/terminals.json.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,29 @@
"name": "Podverse API",
"description": "podverse-api",
"cwd": "~/repos/podverse-api",
"open": true
"open": true,
"command": "npm run dev:watch"
},
{
"name": "Podverse External Services",
"description": "podverse-external-services",
"cwd": "~/repos/podverse-external-services",
"open": true
"open": true,
"command": "npm run build:watch"
},
{
"name": "Podverse F-Droid",
"description": "podverse-fdroid",
"cwd": "~/repos/podverse-fdroid",
"open": true
},
{
"name": "Podverse Helpers",
"description": "podverse-helpers",
"cwd": "~/repos/podverse-helpers",
"open": true,
"command": "npm run build:watch"
},
{
"name": "Podverse Ops",
"description": "podverse-ops",
Expand All @@ -29,32 +38,29 @@
"name": "Podverse ORM",
"description": "podverse-orm",
"cwd": "~/repos/podverse-orm",
"open": true
"open": true,
"command": "npm run build:watch"
},
{
"name": "Podverse Parser",
"description": "podverse-parser",
"cwd": "~/repos/podverse-parser",
"open": true
"open": true,
"command": "npm run build:watch"
},
{
"name": "Podverse Queue",
"description": "podverse-queue",
"cwd": "~/repos/podverse-queue",
"open": true,
"command": "npm run build:watch"
},
{
"name": "Podverse RN",
"description": "podverse-rn",
"cwd": "~/repos/podverse-rn",
"open": true
},
{
"name": "Podverse Serverless",
"description": "podverse-serverless",
"cwd": "~/repos/podverse-serverless",
"open": true
},
{
"name": "Podverse Shared",
"description": "podverse-shared",
"cwd": "~/repos/podverse-shared",
"open": true
},
{
"name": "Podverse Web",
"description": "podverse-web",
Expand Down
29 changes: 17 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,34 +14,39 @@ endif
say_hello:
@echo "Hello Podverse"

.PHONY: local_validate_init
local_validate_init: config/podverse-api-local.env config/podverse-db-local.env
.PHONY: validate_init
validate_init: config/podverse-api.env config/podverse-db.env

config/podverse-api-local.env:
config/podverse-api.env:
@echo "Missing: $@"
@echo "Copying from example file"
cp ./[email protected] ./$@

config/podverse-db-local.env:
config/podverse-db.env:
@echo "Missing: $@"
@echo "Copying from example file"
cp ./[email protected] ./$@

.PHONY: local_nginx_proxy
local_nginx_proxy:
.PHONY: nginx_proxy
nginx_proxy:
@echo 'Generate new cert'
test -d proxy/local/certs || mkdir -p proxy/local/certs
cd proxy/local/certs && openssl genrsa -out podverse-server.key 4096
cd proxy/local/certs && openssl rsa -in podverse-server.key -out podverse-server.key.insecure
cd proxy/local/certs && openssl req -new -sha256 -key podverse-server.key -subj "/C=US/ST=Jefferson/L=Grand/O=EXA/OU=MPL/CN=podverse.local" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:podverse.local,DNS:www.podverse.local,DNS:api.podverse.local")) -out podverse-server.csr
cd proxy/local/certs && openssl x509 -req -days 365 -in podverse-server.csr -signkey podverse-server.key -out podverse-server.crt

.PHONY: local_up_db
local_up_db:
.PHONY: up_db
up_db:
docker-compose -f docker-compose/local/docker-compose.yml up podverse_db -d

.PHONY: local_down
local_down:
.PHONY: up_all
up_all:
docker-compose -f docker-compose/local/docker-compose.yml up podverse_db -d
docker-compose -f docker-compose/local/docker-compose.yml up podverse_amqp -d

.PHONY: down
down:
docker-compose -f docker-compose/local/docker-compose.yml down

proxy/local/certs:
Expand All @@ -59,6 +64,6 @@ proxy/local/certs/podverse-server.csr: proxy/local/certs/podverse-server.key
proxy/local/certs/podverse-server.crt: proxy/local/certs/podverse-server.csr
openssl x509 -req -days 365 -in $< -signkey proxy/local/certs/podverse-server.key -out $@

.PHONY: local_nginx_proxy_cert
local_nginx_proxy_cert: proxy/local/certs proxy/local/certs/podverse-server.key proxy/local/certs/podverse-server.key.insecure proxy/local/certs/podverse-server.csr proxy/local/certs/podverse-server.crt
.PHONY: nginx_proxy_cert
nginx_proxy_cert: proxy/local/certs proxy/local/certs/podverse-server.key proxy/local/certs/podverse-server.key.insecure proxy/local/certs/podverse-server.csr proxy/local/certs/podverse-server.crt
@echo 'Generate new cert'
5 changes: 5 additions & 0 deletions config/podverse-amqp.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
RABBITMQ_HOST=podverse_amqp
RABBITMQ_PORT=5672
RABBITMQ_DEFAULT_USER=
RABBITMQ_DEFAULT_PASS=
RABBITMQ_VHOST=/
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
POSTGRES_USER=user
POSTGRES_PASSWORD=mysecretpw
POSTGRES_DB=db
POSTGRES_DB=postgres
PGDATA=/var/lib/postgresql/data/pgdata
28 changes: 28 additions & 0 deletions config/podverse-workers.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
NODE_ENV=production

RABBITMQ_HOST=podverse_queue
RABBITMQ_PORT=5672
RABBITMQ_USERNAME=user
RABBITMQ_PASSWORD=mysecretpw
RABBITMQ_VHOST=/

RABBITMQ_QUEUE_NAMES=rss-slow,rss-fast,rss-live

#####
##### Postgres
#####

# LOCAL
DB_HOST=podverse_db
DB_PORT=5432
DB_USERNAME=user
DB_PASSWORD=mysecretpw
DB_DATABASE=postgres
DB_SSL_CONNECTION=

LOG_LEVEL=info
LOG_TIMER=

PODCAST_INDEX_BASE_URL=https://api.podcastindex.org/api/1.0
PODCAST_INDEX_AUTH_KEY=
PODCAST_INDEX_SECRET_KEY=
Loading