问题描述
嗨,我必须创建一个离线电子应用程序,为此我要使用带有Sequelize作为ORM的sqlite3 Db。
我想将数据库文件存储在应用程序之外的Electron App的“用户数据”文件夹中。
我还创建了一个.sequelizerc
文件,以使用自定义JS配置文件而不是普通的config.json文件。
const path = require('path');
module.exports = {
'config': path.resolve('abc/config','config.js'),'models-path': path.resolve('abc','models'),'migrations-path': path.resolve('abc','migrations'),'seeders-path': path.resolve('abc','seeders')
}
const electron = require('electron');
console.log('electron')
console.log(electron)
console.log(electron.app)
console.log(electron.remote)
console.log(electron.ipcMain)
console.log(__dirname)
console.log('----------------------------------------------------')
console.log('1111111123231312123121231231231231231231321231231323')
console.log('----------------------------------------------------')
const storagePath = app.getPath('userData');
// const storagePath = '/Users/nimishgupta/Desktop/Work/projects';
console.log('----------------------------------------------------')
// console.log(app.getPath('userData'))
console.log('----------------------------------------------------')
module.exports = {
development: {
dialect: 'sqlite',storage: `${storagePath}/ulesson_development_db.sqlite3`
},test: {
dialect: 'sqlite',storage: `${storagePath}/ulesson_test_db.sqlite3`
},production: {
dialect: 'sqlite',storage: `${storagePath}/ulesson_production_db.sqlite3`
}
};
models / index.js
'use strict';
const fs = require('fs');
const path = require('path');
const Sequelize = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
console.log('1111111')
const config = require(__dirname + '/../config/config.js')[env];
const db = {};
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable],config);
} else {
// sequelize = new Sequelize(config.database,config.username,config.password,config);
sequelize = new Sequelize(config);
}
fs
.readdirsync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname,file))(sequelize,Sequelize.DataTypes);
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
我使用npx sequelize-cli db:migrate
命令运行迁移。
我想知道如何访问配置文件中的电子模块?
我感到困惑和困惑,以获取在运行命令行任务时如何在配置文件中使用电子模块
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)