@exulu/backend 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,10 +1,9 @@
1
- # [1.6.0](https://github.com/Qventu/exulu-backend/compare/v1.5.0...v1.6.0) (2025-08-04)
1
+ ## [1.6.1](https://github.com/Qventu/exulu-backend/compare/v1.6.0...v1.6.1) (2025-08-04)
2
2
 
3
3
 
4
- ### Features
4
+ ### Bug Fixes
5
5
 
6
- * add init db function to script ([77fa08c](https://github.com/Qventu/exulu-backend/commit/77fa08c073c2073ca969a6fde76a998d3e7d7f35))
7
- * make email provider in next auth optional ([d38e790](https://github.com/Qventu/exulu-backend/commit/d38e7900e973007596f66391dae3d4ca643432c4))
6
+ * check if exulu db exists when connecting ([4eb22de](https://github.com/Qventu/exulu-backend/commit/4eb22deba17e28a279b70727a66b7cca16cfd6cc))
8
7
 
9
8
  # [1.1.0](https://github.com/Qventu/exulu-backend/compare/v1.0.1...v1.1.0) (2025-07-30)
10
9
 
package/dist/index.cjs CHANGED
@@ -143,6 +143,36 @@ var import_knex = __toESM(require("knex"), 1);
143
143
  var import_knex2 = require("knex");
144
144
  var import_knex3 = require("pgvector/knex");
145
145
  var db = {};
146
+ var databaseExistsChecked = false;
147
+ async function ensureDatabaseExists() {
148
+ console.log("[EXULU] Ensuring exulu database exists...");
149
+ const defaultKnex = (0, import_knex.default)({
150
+ client: "pg",
151
+ connection: {
152
+ host: process.env.POSTGRES_DB_HOST,
153
+ port: parseInt(process.env.POSTGRES_DB_PORT || "5432"),
154
+ user: process.env.POSTGRES_DB_USER,
155
+ database: "postgres",
156
+ // Connect to default database
157
+ password: process.env.POSTGRES_DB_PASSWORD,
158
+ ssl: process.env.POSTGRES_DB_SSL === "true" ? { rejectUnauthorized: false } : false
159
+ }
160
+ });
161
+ try {
162
+ const result = await defaultKnex.raw(`
163
+ SELECT 1 FROM pg_database WHERE datname = 'exulu'
164
+ `);
165
+ if (result.rows.length === 0) {
166
+ console.log("[EXULU] Database 'exulu' does not exist. Creating it...");
167
+ await defaultKnex.raw(`CREATE DATABASE exulu`);
168
+ console.log("[EXULU] Database 'exulu' created successfully.");
169
+ } else {
170
+ console.log("[EXULU] Database 'exulu' already exists.");
171
+ }
172
+ } finally {
173
+ await defaultKnex.destroy();
174
+ }
175
+ }
146
176
  async function postgresClient() {
147
177
  if (!db["exulu"]) {
148
178
  try {
@@ -152,6 +182,12 @@ async function postgresClient() {
152
182
  console.log("[EXULU] POSTGRES_DB_USER:", process.env.POSTGRES_DB_USER);
153
183
  console.log("[EXULU] POSTGRES_DB_PASSWORD:", process.env.POSTGRES_DB_PASSWORD);
154
184
  console.log("[EXULU] POSTGRES_DB_SSL:", process.env.POSTGRES_DB_SSL);
185
+ console.log("[EXULU] Database exists checked:", databaseExistsChecked);
186
+ if (!databaseExistsChecked) {
187
+ console.log("[EXULU] Ensuring exulu database exists...");
188
+ await ensureDatabaseExists();
189
+ databaseExistsChecked = true;
190
+ }
155
191
  const knex = (0, import_knex.default)({
156
192
  client: "pg",
157
193
  connection: {
@@ -2993,6 +3029,7 @@ var global_queues = {
2993
3029
  logs_cleaner: "logs-cleaner"
2994
3030
  };
2995
3031
  var createRecurringJobs = async () => {
3032
+ console.log("[EXULU] creating recurring jobs.");
2996
3033
  const recurringJobSchedulersLogs = [];
2997
3034
  const queue = queues.use(global_queues.logs_cleaner);
2998
3035
  recurringJobSchedulersLogs.push({
@@ -3020,7 +3057,7 @@ var createRecurringJobs = async () => {
3020
3057
  }
3021
3058
  }
3022
3059
  );
3023
- console.log("Recurring job schedulers:");
3060
+ console.log("[EXULU] recurring job schedulers:");
3024
3061
  console.table(recurringJobSchedulersLogs);
3025
3062
  return queue;
3026
3063
  };
package/dist/index.js CHANGED
@@ -100,6 +100,36 @@ import Knex from "knex";
100
100
  import "knex";
101
101
  import "pgvector/knex";
102
102
  var db = {};
103
+ var databaseExistsChecked = false;
104
+ async function ensureDatabaseExists() {
105
+ console.log("[EXULU] Ensuring exulu database exists...");
106
+ const defaultKnex = Knex({
107
+ client: "pg",
108
+ connection: {
109
+ host: process.env.POSTGRES_DB_HOST,
110
+ port: parseInt(process.env.POSTGRES_DB_PORT || "5432"),
111
+ user: process.env.POSTGRES_DB_USER,
112
+ database: "postgres",
113
+ // Connect to default database
114
+ password: process.env.POSTGRES_DB_PASSWORD,
115
+ ssl: process.env.POSTGRES_DB_SSL === "true" ? { rejectUnauthorized: false } : false
116
+ }
117
+ });
118
+ try {
119
+ const result = await defaultKnex.raw(`
120
+ SELECT 1 FROM pg_database WHERE datname = 'exulu'
121
+ `);
122
+ if (result.rows.length === 0) {
123
+ console.log("[EXULU] Database 'exulu' does not exist. Creating it...");
124
+ await defaultKnex.raw(`CREATE DATABASE exulu`);
125
+ console.log("[EXULU] Database 'exulu' created successfully.");
126
+ } else {
127
+ console.log("[EXULU] Database 'exulu' already exists.");
128
+ }
129
+ } finally {
130
+ await defaultKnex.destroy();
131
+ }
132
+ }
103
133
  async function postgresClient() {
104
134
  if (!db["exulu"]) {
105
135
  try {
@@ -109,6 +139,12 @@ async function postgresClient() {
109
139
  console.log("[EXULU] POSTGRES_DB_USER:", process.env.POSTGRES_DB_USER);
110
140
  console.log("[EXULU] POSTGRES_DB_PASSWORD:", process.env.POSTGRES_DB_PASSWORD);
111
141
  console.log("[EXULU] POSTGRES_DB_SSL:", process.env.POSTGRES_DB_SSL);
142
+ console.log("[EXULU] Database exists checked:", databaseExistsChecked);
143
+ if (!databaseExistsChecked) {
144
+ console.log("[EXULU] Ensuring exulu database exists...");
145
+ await ensureDatabaseExists();
146
+ databaseExistsChecked = true;
147
+ }
112
148
  const knex = Knex({
113
149
  client: "pg",
114
150
  connection: {
@@ -2950,6 +2986,7 @@ var global_queues = {
2950
2986
  logs_cleaner: "logs-cleaner"
2951
2987
  };
2952
2988
  var createRecurringJobs = async () => {
2989
+ console.log("[EXULU] creating recurring jobs.");
2953
2990
  const recurringJobSchedulersLogs = [];
2954
2991
  const queue = queues.use(global_queues.logs_cleaner);
2955
2992
  recurringJobSchedulersLogs.push({
@@ -2977,7 +3014,7 @@ var createRecurringJobs = async () => {
2977
3014
  }
2978
3015
  }
2979
3016
  );
2980
- console.log("Recurring job schedulers:");
3017
+ console.log("[EXULU] recurring job schedulers:");
2981
3018
  console.table(recurringJobSchedulersLogs);
2982
3019
  return queue;
2983
3020
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exulu/backend",
3
3
  "author": "Qventu Bv.",
4
- "version": "1.6.0",
4
+ "version": "1.6.1",
5
5
  "main": "./dist/index.js",
6
6
  "private": false,
7
7
  "publishConfig": {