Kuma/knexfile.js
Jakub Blažej 9c069deb5d add support for MySQL,
convert database migrations to knex,
rewrite complex queries to knex,
2021-12-18 23:18:17 +01:00

66 lines
1.5 KiB
JavaScript

// Update with your config settings.
const dbType = process.env.DB_TYPE || 'sqlite3';
const dbHost = process.env.DB_HOST;
const dbName = process.env.DB_NAME;
const dbUser = process.env.DB_USER;
const dbPass = process.env.DB_PASS;
let database;
switch (dbType) {
case 'sqlite3':
const dialect = require("knex/lib/dialects/sqlite3/index.js");
dialect.prototype._driver = () => require("@louislam/sqlite3");
database = {
client: dialect,
connection: {
filename: './data/kuma.db',
acquireConnectionTimeout: 120 * 1000,
},
useNullAsDefault: true,
pool: {
min: 1,
max: 1,
idleTimeoutMillis: 120 * 1000,
propagateCreateError: false,
acquireTimeoutMillis: 120 * 1000,
},
migrations: {
tableName: 'knex_migrations'
}
};
break;
case 'mysql':
database = {
client: "mysql",
connection: {
host: dbHost,
user: dbUser,
database: dbName,
password: dbPass,
}
};
break;
}
function setPath(path) {
if (dbType !== 'sqlite')
return;
database.connection.filename = path;
}
function getDialect() {
return dbType;
}
module.exports = {
development: database,
production: database,
setPath: setPath,
getDialect: getDialect,
};