@sap/cds-dk
Version:
Command line client and development toolkit for the SAP Cloud Application Programming Model
30 lines (26 loc) • 1.29 kB
JavaScript
exports.deploy = function deploy_to_sqlite (_model, _db, options) {
if (options.dialect === 'h2' && !options.dry) console.error('\nDeploying into a H2 database is not yet supported\n')
const cds = require('../../lib/cds')
const conf = cds.env.requires.db ?? {}
const fts = cds.env.requires.toggles && cds.env.features.folders
const model = _model || cds.resolve(!fts ? '*' : ['*',fts], false)
let file = 'db'
if (options.to) {
file = 'sqlite:'+ _database4 (_db, options.to, conf)
// current 'sqlite' default is bad, as we want to default to 'plain', so ignore it
const env_dialect = cds.env.sql.dialect || 'plain'
const to_dialect = options.to && options.to.match(/^(\w+)/) && RegExp.$1
if (to_dialect) options.dialect = (to_dialect === 'sql')
? conf.dialect ?? env_dialect
: to_dialect
}
return cds.deploy(model) .to (file, options)
}
function _database4 (_db,_dbrl,conf) {
if (_db) return _db
if (_dbrl === 'sqlite') return 'db.sqlite'
if (conf.credentials?.database) return conf.credentials.database
if (conf.credentials?.url) return conf.credentials.url
if (_dbrl === 'sql') return ':memory:'
else return conf.credentials?.database ?? conf.credentials?.url
}