mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Remove the support of the 'Move object to another tablespace' feature.
This commit is contained in:
parent
343c3ee49c
commit
41bcce09ce
Binary file not shown.
Before Width: | Height: | Size: 33 KiB |
Binary file not shown.
Before Width: | Height: | Size: 32 KiB |
@ -15,7 +15,6 @@ database, right-click on the *Databases* node, and select *Create Database...*
|
|||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
database_dialog
|
database_dialog
|
||||||
move_objects
|
|
||||||
resource_group_dialog
|
resource_group_dialog
|
||||||
role_dialog
|
role_dialog
|
||||||
tablespace_dialog
|
tablespace_dialog
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
.. _move_objects:
|
|
||||||
|
|
||||||
****************************
|
|
||||||
`Move Objects Dialog`:index:
|
|
||||||
****************************
|
|
||||||
|
|
||||||
Use the *Move Objects* dialog to move database objects from one tablespace to
|
|
||||||
another tablespace.
|
|
||||||
|
|
||||||
The *Move Objects* dialog organizes the movement of database objects with the
|
|
||||||
*General* tab; the *SQL* tab displays the SQL code generated by dialog
|
|
||||||
selections.
|
|
||||||
|
|
||||||
.. image:: images/move_objects_general.png
|
|
||||||
:alt: Move objects dialog general tab
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
Use the fields in the *General* tab to identify the items that will be moved and
|
|
||||||
the tablespace to which they will be moved:
|
|
||||||
|
|
||||||
* Use the *New tablespace* drop-down listbox to select a pre-existing
|
|
||||||
tablespace to which the object will be moved. (To create a tablespace, use the
|
|
||||||
*Tablespace* dialog; access the dialog by right clicking *Tablespaces* in the
|
|
||||||
*pgAdmin* tree control and selecting *Create Tablespace...* from the
|
|
||||||
context-menu.)
|
|
||||||
* Use the *Object type* drop-down listbox to select from the following:
|
|
||||||
|
|
||||||
* Select *All* to move all tables, indexes, and materialized views from the
|
|
||||||
current tablespace (currently selected in the *pgAdmin* tree control) to
|
|
||||||
the new tablespace.
|
|
||||||
* Select *Tables* to move tables from the current tablespace to the new
|
|
||||||
tablespace.
|
|
||||||
* Select *Indexes* to move indexes from the current tablespace to the new
|
|
||||||
tablespace.
|
|
||||||
* Select *Materialized views* to move materialized views from the current
|
|
||||||
tablespace to the new tablespace.
|
|
||||||
|
|
||||||
* Use the *Object owner* drop-down listbox to select the role that owns the
|
|
||||||
objects selected in the *Object type* field. This field is optional.
|
|
||||||
|
|
||||||
Click the *SQL* tab to continue.
|
|
||||||
|
|
||||||
Your entries in the *Move Objects* dialog generate a SQL command (see an example
|
|
||||||
below). Use the *SQL* tab for review; revisit the *General* tab to modify the
|
|
||||||
SQL command.
|
|
||||||
|
|
||||||
Example
|
|
||||||
*******
|
|
||||||
|
|
||||||
The following is an example of the sql command generated by user selections in
|
|
||||||
the *Move Objects* dialog:
|
|
||||||
|
|
||||||
.. image:: images/move_objects_sql.png
|
|
||||||
:alt: Move Objects dialog sql tab
|
|
||||||
:align: center
|
|
||||||
|
|
||||||
The example shown demonstrates moving materialized views owned by Alice from
|
|
||||||
tablespace *tbspace_01* to *tbspace_02*.
|
|
||||||
|
|
||||||
* Click the *Help* button (?) to access online help.
|
|
||||||
* Click the *OK* button to save work.
|
|
||||||
* Click the *Cancel* button to exit without saving work.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -54,13 +54,13 @@ export function getNodePartitionTableSchema(treeNodeInfo, itemNodeData, pgBrowse
|
|||||||
()=>{
|
()=>{
|
||||||
return getNodeAjaxOptions('get_attach_tables', partNode, treeNodeInfo, itemNodeData, {
|
return getNodeAjaxOptions('get_attach_tables', partNode, treeNodeInfo, itemNodeData, {
|
||||||
useCache:false,
|
useCache:false,
|
||||||
customGenerateUrl: (treeNodeInfo, actionType)=>{
|
customGenerateUrl: (trNodeInfo, actionType)=>{
|
||||||
return pgadminUtils.sprintf('table/%s/%s/%s/%s/%s/%s',
|
return pgadminUtils.sprintf('table/%s/%s/%s/%s/%s/%s',
|
||||||
encodeURIComponent(actionType), encodeURIComponent(treeNodeInfo['server_group']._id),
|
encodeURIComponent(actionType), encodeURIComponent(trNodeInfo['server_group']._id),
|
||||||
encodeURIComponent(treeNodeInfo['server']._id),
|
encodeURIComponent(trNodeInfo['server']._id),
|
||||||
encodeURIComponent(treeNodeInfo['database']._id),
|
encodeURIComponent(trNodeInfo['database']._id),
|
||||||
encodeURIComponent(treeNodeInfo['partition'].schema_id),
|
encodeURIComponent(trNodeInfo['partition'].schema_id),
|
||||||
encodeURIComponent(treeNodeInfo['partition']._id)
|
encodeURIComponent(trNodeInfo['partition']._id)
|
||||||
);
|
);
|
||||||
}});
|
}});
|
||||||
},
|
},
|
||||||
|
@ -832,76 +832,5 @@ class TablespaceView(PGChildNodeView):
|
|||||||
|
|
||||||
return dependents
|
return dependents
|
||||||
|
|
||||||
@check_precondition
|
|
||||||
def move_objects(self, gid, sid, tsid):
|
|
||||||
"""
|
|
||||||
This function moves objects from current tablespace to another
|
|
||||||
|
|
||||||
Args:
|
|
||||||
gid: Server Group ID
|
|
||||||
sid: Server ID
|
|
||||||
tsid: Tablespace ID
|
|
||||||
"""
|
|
||||||
data = json.loads(request.form['data'], encoding='utf-8')
|
|
||||||
|
|
||||||
try:
|
|
||||||
SQL = render_template("/".join(
|
|
||||||
[self.template_path, 'move_objects.sql']),
|
|
||||||
data=data, conn=self.conn
|
|
||||||
)
|
|
||||||
status, res = self.conn.execute_scalar(SQL.strip('\n'))
|
|
||||||
if not status:
|
|
||||||
return internal_server_error(errormsg=res)
|
|
||||||
|
|
||||||
return make_json_response(
|
|
||||||
success=1,
|
|
||||||
info="Tablespace updated",
|
|
||||||
data={
|
|
||||||
'id': tsid,
|
|
||||||
'sid': sid,
|
|
||||||
'gid': gid
|
|
||||||
}
|
|
||||||
)
|
|
||||||
except Exception as e:
|
|
||||||
current_app.logger.exception(e)
|
|
||||||
return internal_server_error(errormsg=str(e))
|
|
||||||
|
|
||||||
@check_precondition
|
|
||||||
def move_objects_sql(self, gid, sid, tsid):
|
|
||||||
"""
|
|
||||||
This function returns sql for Move Objects.. dialog
|
|
||||||
|
|
||||||
Args:
|
|
||||||
gid: Server Group ID
|
|
||||||
sid: Server ID
|
|
||||||
tsid: Tablespace ID
|
|
||||||
"""
|
|
||||||
required_args = ['old_tblspc', 'tblspc', 'obj_type']
|
|
||||||
|
|
||||||
data = dict()
|
|
||||||
for k, v in request.args.items():
|
|
||||||
try:
|
|
||||||
data[k] = json.loads(v, encoding='utf-8')
|
|
||||||
except ValueError as ve:
|
|
||||||
current_app.logger.exception(ve)
|
|
||||||
data[k] = v
|
|
||||||
|
|
||||||
for arg in required_args:
|
|
||||||
if arg not in data:
|
|
||||||
return make_json_response(
|
|
||||||
data=gettext("-- definition incomplete"),
|
|
||||||
status=200
|
|
||||||
)
|
|
||||||
|
|
||||||
sql = render_template("/".join(
|
|
||||||
[self.template_path, 'move_objects.sql']),
|
|
||||||
data=data, conn=self.conn
|
|
||||||
)
|
|
||||||
|
|
||||||
return make_json_response(
|
|
||||||
data=sql.strip('\n'),
|
|
||||||
status=200
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
TablespaceView.register_node_view(blueprint)
|
TablespaceView.register_node_view(blueprint)
|
||||||
|
@ -11,15 +11,13 @@ import { getNodeListByName } from '../../../../../static/js/node_ajax';
|
|||||||
import { getNodePrivilegeRoleSchema } from '../../../static/js/privilege.ui';
|
import { getNodePrivilegeRoleSchema } from '../../../static/js/privilege.ui';
|
||||||
import { getNodeVariableSchema } from '../../../static/js/variable.ui';
|
import { getNodeVariableSchema } from '../../../static/js/variable.ui';
|
||||||
import TablespaceSchema from './tablespace.ui';
|
import TablespaceSchema from './tablespace.ui';
|
||||||
import Notify from '../../../../../../static/js/helpers/Notifier';
|
|
||||||
|
|
||||||
define('pgadmin.node.tablespace', [
|
define('pgadmin.node.tablespace', [
|
||||||
'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'backbone',
|
'sources/gettext', 'sources/url_for', 'jquery', 'underscore', 'backbone',
|
||||||
'sources/pgadmin', 'pgadmin.browser', 'pgadmin.alertifyjs',
|
'sources/pgadmin', 'pgadmin.browser', 'pgadmin.browser.collection', 'pgadmin.browser.node.ui',
|
||||||
'pgadmin.backform', 'pgadmin.browser.collection', 'pgadmin.browser.node.ui',
|
|
||||||
'pgadmin.browser.server.privilege',
|
'pgadmin.browser.server.privilege',
|
||||||
], function(
|
], function(
|
||||||
gettext, url_for, $, _, Backbone, pgAdmin, pgBrowser, Alertify, Backform
|
gettext, url_for, $, _, Backbone, pgAdmin, pgBrowser
|
||||||
) {
|
) {
|
||||||
|
|
||||||
if (!pgBrowser.Nodes['coll-tablespace']) {
|
if (!pgBrowser.Nodes['coll-tablespace']) {
|
||||||
@ -74,13 +72,6 @@ define('pgadmin.node.tablespace', [
|
|||||||
category: 'create', priority: 4, label: gettext('Tablespace...'),
|
category: 'create', priority: 4, label: gettext('Tablespace...'),
|
||||||
icon: 'wcTabIcon icon-tablespace', data: {action: 'create'},
|
icon: 'wcTabIcon icon-tablespace', data: {action: 'create'},
|
||||||
enable: 'can_create_tablespace',
|
enable: 'can_create_tablespace',
|
||||||
},{
|
|
||||||
name: 'move_tablespace', node: 'tablespace', module: this,
|
|
||||||
applies: ['object', 'context'], callback: 'move_objects',
|
|
||||||
category: 'move_tablespace', priority: 5,
|
|
||||||
label: gettext('Move objects to...'),
|
|
||||||
icon: 'fa fa-exchange-alt', data: {action: 'create'},
|
|
||||||
enable: 'can_move_objects',
|
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
},
|
},
|
||||||
@ -90,239 +81,7 @@ define('pgadmin.node.tablespace', [
|
|||||||
|
|
||||||
return server.connected && server.user.is_superuser;
|
return server.connected && server.user.is_superuser;
|
||||||
},
|
},
|
||||||
can_move_objects: function(node, item) {
|
|
||||||
var treeData = pgBrowser.tree.getTreeNodeHierarchy(item),
|
|
||||||
server = treeData['server'];
|
|
||||||
// Only supported PG9.4 and above version
|
|
||||||
return server.connected &&
|
|
||||||
server.user.is_superuser &&
|
|
||||||
server.version >= 90400;
|
|
||||||
},
|
|
||||||
callbacks: {
|
callbacks: {
|
||||||
/* Move objects from one tablespace to another */
|
|
||||||
move_objects: function(args){
|
|
||||||
var input = args || {},
|
|
||||||
obj = this,
|
|
||||||
t = pgBrowser.tree,
|
|
||||||
i = input.item || t.selected(),
|
|
||||||
d = i ? t.itemData(i) : undefined,
|
|
||||||
url = obj.generate_url(i, 'move_objects', d, true),
|
|
||||||
msql_url = obj.generate_url(i, 'move_objects_sql', d, true);
|
|
||||||
|
|
||||||
if (!d)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Object model
|
|
||||||
var objModel = Backbone.Model.extend({
|
|
||||||
idAttribute: 'id',
|
|
||||||
defaults: {
|
|
||||||
new_tblspc: undefined,
|
|
||||||
obj_type: 'all',
|
|
||||||
user: undefined,
|
|
||||||
},
|
|
||||||
initialize: function(attrs, otherArgs) {
|
|
||||||
this.selected_ts = otherArgs.selected_ts;
|
|
||||||
Backbone.Model.prototype.initialize.apply(this, [attrs, otherArgs]);
|
|
||||||
},
|
|
||||||
schema: [{
|
|
||||||
id: 'tblspc', label: gettext('New tablespace'),
|
|
||||||
type: 'text', disabled: false, control: 'node-list-by-name',
|
|
||||||
node: 'tablespace', select2: {allowClear: false},
|
|
||||||
filter: function(o) {
|
|
||||||
return o && (o.label != this.model.selected_ts);
|
|
||||||
},
|
|
||||||
},{
|
|
||||||
id: 'obj_type', label: gettext('Object type'),
|
|
||||||
type: 'text', disabled: false, control: 'select2',
|
|
||||||
select2: { allowClear: false, width: '100%' },
|
|
||||||
options: [
|
|
||||||
{label: gettext('All'), value: 'all'},
|
|
||||||
{label: gettext('Tables'), value: 'tables'},
|
|
||||||
{label: gettext('Indexes'), value: 'indexes'},
|
|
||||||
{label: gettext('Materialized views'), value: 'materialized_views'},
|
|
||||||
],
|
|
||||||
},{
|
|
||||||
id: 'user', label: gettext('Object owner'),
|
|
||||||
type: 'text', disabled: false, control: 'node-list-by-name',
|
|
||||||
node: 'role', select2: {allowClear: false},
|
|
||||||
},{
|
|
||||||
id: 'sqltab', label: gettext('SQL'), group: gettext('SQL'),
|
|
||||||
type: 'text', disabled: false, control: Backform.SqlTabControl.extend({
|
|
||||||
initialize: function() {
|
|
||||||
// Initialize parent class
|
|
||||||
Backform.SqlTabControl.prototype.initialize.apply(this, arguments);
|
|
||||||
},
|
|
||||||
onTabChange: function(sql_tab_obj) {
|
|
||||||
// Fetch the information only if the SQL tab is visible at the moment.
|
|
||||||
if (this.dialog && sql_tab_obj.shown == this.tabIndex) {
|
|
||||||
var self = this,
|
|
||||||
sql_tab_args = self.model.toJSON();
|
|
||||||
// Add existing tablespace
|
|
||||||
sql_tab_args.old_tblspc = this.model.selected_ts;
|
|
||||||
|
|
||||||
// Fetches modified SQL
|
|
||||||
$.ajax({
|
|
||||||
url: msql_url,
|
|
||||||
type: 'GET',
|
|
||||||
cache: false,
|
|
||||||
data: sql_tab_args,
|
|
||||||
dataType: 'json',
|
|
||||||
contentType: 'application/json',
|
|
||||||
}).done(function(res) {
|
|
||||||
self.sqlCtrl.clearHistory();
|
|
||||||
self.sqlCtrl.setValue(res.data);
|
|
||||||
self.sqlCtrl.refresh();
|
|
||||||
}).fail(function() {
|
|
||||||
self.model.trigger('pgadmin-view:msql:error');
|
|
||||||
}).always(function() {
|
|
||||||
self.model.trigger('pgadmin-view:msql:fetched');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
}],
|
|
||||||
validate: function() {
|
|
||||||
return null;
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
if(!Alertify.move_objects_dlg) {
|
|
||||||
Alertify.dialog('move_objects_dlg' ,function factory() {
|
|
||||||
return {
|
|
||||||
main: function() {
|
|
||||||
var title = gettext('Move objects to another tablespace');
|
|
||||||
this.set('title', title);
|
|
||||||
},
|
|
||||||
build: function() {
|
|
||||||
Alertify.pgDialogBuild.apply(this);
|
|
||||||
},
|
|
||||||
setup:function() {
|
|
||||||
return {
|
|
||||||
buttons: [{
|
|
||||||
text: '', key: 112,
|
|
||||||
className: 'btn btn-primary-icon pull-left fa fa-question pg-alertify-icon-button',
|
|
||||||
attrs:{name:'dialog_help', type:'button', label: gettext('Users'),
|
|
||||||
url: url_for('help.static', {'filename': 'move_objects.html'})},
|
|
||||||
},{
|
|
||||||
text: gettext('Cancel'), key: 27, className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button',
|
|
||||||
},{
|
|
||||||
text: gettext('OK'), key: 13, className: 'btn btn-primary fa fa-lg fa-save pg-alertify-button',
|
|
||||||
}],
|
|
||||||
// Set options for dialog
|
|
||||||
options: {
|
|
||||||
//disable both padding and overflow control.
|
|
||||||
padding : !1,
|
|
||||||
overflow: !1,
|
|
||||||
modal: false,
|
|
||||||
resizable: true,
|
|
||||||
maximizable: true,
|
|
||||||
pinnable: false,
|
|
||||||
closableByDimmer: false,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
hooks: {
|
|
||||||
// Triggered when the dialog is closed
|
|
||||||
onclose: function() {
|
|
||||||
if (this.view) {
|
|
||||||
// clear our backform model/view
|
|
||||||
this.view.remove({data: true, internal: true, silent: true});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
prepare: function() {
|
|
||||||
var self = this,
|
|
||||||
$container = $('<div class=\'move_objects\'></div>');
|
|
||||||
//Disbale Okay button
|
|
||||||
this.__internal.buttons[2].element.disabled = true;
|
|
||||||
// Find current/selected node
|
|
||||||
var tree = pgBrowser.tree,
|
|
||||||
_i = tree.selected(),
|
|
||||||
_d = _i && _i.length == 1 ? tree.itemData(_i) : undefined,
|
|
||||||
node = _d && pgBrowser.Nodes[_d._type];
|
|
||||||
|
|
||||||
if (!_d)
|
|
||||||
return;
|
|
||||||
// Create treeInfo
|
|
||||||
var treeInfo = pgAdmin.tree.getTreeNodeHierarchy.apply(node, [_i]);
|
|
||||||
// Instance of backbone model
|
|
||||||
var newModel = new objModel({}, {node_info: treeInfo, selected_ts: _d.label}),
|
|
||||||
fields = Backform.generateViewSchema(
|
|
||||||
treeInfo, newModel, 'create', node,
|
|
||||||
treeInfo.server, true
|
|
||||||
);
|
|
||||||
|
|
||||||
var view = this.view = new Backform.Dialog({
|
|
||||||
el: $container, model: newModel, schema: fields,
|
|
||||||
});
|
|
||||||
// Add our class to alertify
|
|
||||||
$(this.elements.body.childNodes[0]).addClass(
|
|
||||||
'alertify_tools_dialog_properties obj_properties'
|
|
||||||
);
|
|
||||||
// Render dialog
|
|
||||||
view.render();
|
|
||||||
|
|
||||||
this.elements.content.appendChild($container.get(0));
|
|
||||||
|
|
||||||
// Listen to model & if filename is provided then enable Backup button
|
|
||||||
this.view.model.on('change', function() {
|
|
||||||
if (!_.isUndefined(this.get('tblspc')) && this.get('tblspc') !== '') {
|
|
||||||
this.errorModel.clear();
|
|
||||||
self.__internal.buttons[2].element.disabled = false;
|
|
||||||
} else {
|
|
||||||
self.__internal.buttons[2].element.disabled = true;
|
|
||||||
this.errorModel.set('tblspc', gettext('Please select tablespace.'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
// Callback functions when click on the buttons of the Alertify dialogs
|
|
||||||
callback: function(e) {
|
|
||||||
if (e.button.element.name == 'dialog_help') {
|
|
||||||
e.cancel = true;
|
|
||||||
pgBrowser.showHelp(e.button.element.name, e.button.element.getAttribute('url'),
|
|
||||||
null, null);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (e.button.text === gettext('OK')) {
|
|
||||||
var self = this,
|
|
||||||
btn_args = this.view.model.toJSON();
|
|
||||||
btn_args.old_tblspc = d.label;
|
|
||||||
e.cancel = true;
|
|
||||||
Notify.confirm(
|
|
||||||
gettext('Move objects...'),
|
|
||||||
gettext(
|
|
||||||
'Are you sure you wish to move the objects from %s to %s?',
|
|
||||||
btn_args.old_tblspc, btn_args.tblspc
|
|
||||||
),
|
|
||||||
function() {
|
|
||||||
$.ajax({
|
|
||||||
url: url,
|
|
||||||
method:'PUT',
|
|
||||||
data:{'data': JSON.stringify(btn_args) },
|
|
||||||
})
|
|
||||||
.done(function(res) {
|
|
||||||
if (res.success) {
|
|
||||||
Notify.success(res.info);
|
|
||||||
self.close();
|
|
||||||
} else {
|
|
||||||
Notify.error(res.errormsg);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.fail(function(xhr, status, error) {
|
|
||||||
Notify.pgRespErrorNotify(xhr, error);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
function() {
|
|
||||||
// Do nothing as user cancel the operation
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
|
||||||
Alertify.move_objects_dlg(true).resizeTo(pgBrowser.stdW.md,pgBrowser.stdH.md);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getSchema: function(treeNodeInfo, itemNodeData) {
|
getSchema: function(treeNodeInfo, itemNodeData) {
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
{% if data.obj_type and data.tblspc and data.old_tblspc %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'tables' %}
|
|
||||||
ALTER TABLE ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'indexes' %}
|
|
||||||
ALTER INDEX ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'materialized_views' %}
|
|
||||||
ALTER MATERIALIZED VIEW ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
@ -1,21 +0,0 @@
|
|||||||
{% if data.obj_type and data.tblspc and data.old_tblspc %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'tables' %}
|
|
||||||
ALTER TABLE ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'indexes' %}
|
|
||||||
ALTER INDEX ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if data.obj_type == 'all' or data.obj_type == 'materialized_views' %}
|
|
||||||
ALTER MATERIALIZED VIEW ALL IN TABLESPACE {{ conn|qtIdent(data.old_tblspc) }}
|
|
||||||
{% if data.user %} OWNED BY {{ conn|qtIdent(data.user) }}{% endif %}
|
|
||||||
SET TABLESPACE {{ conn|qtIdent(data.tblspc) }};
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% endif %}
|
|
Loading…
Reference in New Issue
Block a user