前端
Nuxt3
TailwindCSS 5
Typescript
文件夾 |Αα
每天午夜,我的投資組合的 SQLite 數據庫都會通過我的 VPS 上的專用 Docker 服務自動更新。
此服務運行一個 Node.js cron 作業,該作業組合和更新來自各種來源的數據,包括 Vimeo、GitHub、GitLab API、puppeteers 網絡抓取和託管在https://storage.rottigni.tech/.
使用更新應用於 SQLite 數據庫@prisma/client並反映在 VPS 文件系統和 Nuxt3 容器中,它們通過 Docker 卷保持更新。
seeder 容器在做種過程中會生成日誌,包括 logs.log、error.log 和 debug.log,這些日誌會發送到我的私有倉庫https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/logs/在每次運行。
容器還將在每次種子操作之前創建 SQLite3 數據庫的備份,並將其存儲在https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/backup/,, 以確保數據安全。
播種器的一個顯著特徵是它能夠將我的私有存儲用作緩存數據提供者。
當播種器從源提供者請求數據時,它會上傳一個新的 JSON API 響應文件到我的存檔,文件名中包含操作的 UTC 時間戳
(https://s3.rottigni.tech/portfolio.rottigni.tech/seeding/history/)啟用緩存後,播種器從存檔中讀取最新文件,而不是從原始提供程序請求數據。
這一切都是通過位於播種根目錄中的 seed.config.ts 文件編排的。
該文件指定應填充哪些實體和關係、應緩存哪些內容以及應加載數據的路徑。
總的來說,該系統為我的投資組合的 SQLite 數據庫提供自動更新,同時確保數據安全並通過使用緩存數據最大限度地減少對原始供應商的請求。