|
@@ -11,8 +11,9 @@ function getSequelize() {
|
|
|
if (sequelize) return sequelize;
|
|
if (sequelize) return sequelize;
|
|
|
const db = config.database || {};
|
|
const db = config.database || {};
|
|
|
if (db.type === 'sqlite' || !db.type) {
|
|
if (db.type === 'sqlite' || !db.type) {
|
|
|
- const storage = path.resolve(db.storage || './data/gpx-vis.db');
|
|
|
|
|
- fs.mkdirSync(path.dirname(storage), { recursive: true });
|
|
|
|
|
|
|
+ const rawStorage = db.storage || './data/gpx-vis.db';
|
|
|
|
|
+ const storage = rawStorage === ':memory:' ? ':memory:' : path.resolve(rawStorage);
|
|
|
|
|
+ if (storage !== ':memory:') fs.mkdirSync(path.dirname(storage), { recursive: true });
|
|
|
sequelize = new Sequelize({ dialect: 'sqlite', storage, logging: false });
|
|
sequelize = new Sequelize({ dialect: 'sqlite', storage, logging: false });
|
|
|
} else {
|
|
} else {
|
|
|
sequelize = new Sequelize(db.database, db.username, db.password, {
|
|
sequelize = new Sequelize(db.database, db.username, db.password, {
|
|
@@ -29,7 +30,8 @@ async function initDatabase() {
|
|
|
const sq = getSequelize();
|
|
const sq = getSequelize();
|
|
|
// Import models to register them
|
|
// Import models to register them
|
|
|
require('./models');
|
|
require('./models');
|
|
|
- await sq.sync({ alter: true });
|
|
|
|
|
|
|
+ const isMemory = (config.database?.storage === ':memory:');
|
|
|
|
|
+ await sq.sync(isMemory ? {} : { alter: true });
|
|
|
console.log('Database initialized');
|
|
console.log('Database initialized');
|
|
|
}
|
|
}
|
|
|
|
|
|