/* Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
See www.xm.ple.com/CPAL for the full text of the software license. */
- var result,
- viewname,
- schemaname,
- i;
-
- sql = "select schemaname, viewname from pg_views where schemaname in ('xm','sys', 'xt');"
- result = plv8.execute(sql);
- for (i = 0; i < result.length; i++) {
- viewname = result[i].viewname;
- schemaname = result[i].schemaname;
- plv8.execute('drop view if exists ' + schemaname + '.' + viewname + ' cascade;');
- }
-
plv8.execute("select xt.js_init()");
plv8.execute("alter table xt.orm disable trigger orm_did_change");
plv8.execute("delete from xt.orm where orm_json ~ '\"isSystem\":true';");
--- /dev/null
+DO $$
+ /* Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
+ See www.xm.ple.com/CPAL for the full text of the software license. */
+
+ var sql,
+ result,
+ viewname,
+ schemaname,
+ i;
+
+ sql = "select schemaname, viewname from pg_views where schemaname in ('xm','sys', 'xt');"
+ result = plv8.execute(sql);
+ for (i = 0; i < result.length; i++) {
+ viewname = result[i].viewname;
+ schemaname = result[i].schemaname;
+ plv8.execute('drop view if exists ' + schemaname + '.' + viewname + ' cascade;');
+ }
+
+$$ language plv8;
baseName.indexOf('distribution') >= 0,
registerExtension: isExtension,
runJsInit: !isFoundation && !isLibOrm,
- wipeViews: isApplicationCore && spec.wipeViews,
+ wipeViews: isFoundation && spec.wipeViews,
+ wipeOrms: isApplicationCore && spec.wipeViews,
extensionLocation: isCoreExtension ? "/core-extensions" :
isPublicExtension ? "/xtuple-extensions" :
isPrivateExtension ? "/private-extensions" :
}
if (options.wipeViews) {
+ // If we want to pre-emptively wipe out the views, the best place to do it
+ // is at the start of the core application code
+ fs.readFile(path.join(__dirname, "../../../enyo-client/database/source/wipe_views.sql"),
+ function (err, wipeSql) {
+ if (err) {
+ callback(err);
+ return;
+ }
+ extensionSql = wipeSql + extensionSql;
+ callback(null, extensionSql);
+ });
+
+ } else if (options.wipeOrms) {
// If we want to pre-emptively wipe out the views, the best place to do it
// is at the start of the core application code
fs.readFile(path.join(__dirname, "../../../enyo-client/database/source/delete_system_orms.sql"),