mirror of
https://github.com/rajnandan1/kener.git
synced 2026-06-23 04:10:22 +00:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import dotenv from "dotenv";
|
|
dotenv.config();
|
|
|
|
const databaseURL = process.env.DATABASE_URL || "sqlite://./database/kener.sqlite.db";
|
|
|
|
const databaseURLParts = databaseURL.split("://");
|
|
const databaseType = databaseURLParts[0];
|
|
const databasePath = databaseURLParts[1];
|
|
|
|
interface KnexConfig {
|
|
migrations: { directory: string };
|
|
seeds: { directory: string };
|
|
databaseType: string;
|
|
client?: string;
|
|
connection?: string | { filename: string };
|
|
useNullAsDefault?: boolean;
|
|
}
|
|
|
|
const knexOb: KnexConfig = {
|
|
migrations: {
|
|
directory: "./migrations",
|
|
},
|
|
seeds: {
|
|
directory: "./seeds",
|
|
},
|
|
databaseType,
|
|
};
|
|
if (databaseType === "sqlite") {
|
|
knexOb.client = "better-sqlite3";
|
|
knexOb.connection = {
|
|
filename: databasePath,
|
|
};
|
|
knexOb.useNullAsDefault = true;
|
|
} else if (databaseType === "postgresql") {
|
|
knexOb.client = "pg";
|
|
knexOb.connection = databaseURL;
|
|
} else if (databaseType === "mysql") {
|
|
knexOb.client = "mysql2";
|
|
knexOb.connection = databaseURL;
|
|
} else {
|
|
console.error("Invalid database type");
|
|
process.exit(1);
|
|
}
|
|
|
|
export default knexOb;
|