Schema (metadata) operations

Schema operations allows user to export/copy definitions of queueing objects: queues, topics, exchanges, vhosts, etc. This is useful when migrating servers, comparing servers, quickly creating test objects, etc.

Export/copy schema

Click on a server, or one or more queueing objects in the left tree panel and pick “Export schema” from the context menu. You can also export schema from the queues list in the right panel, or from RabbitMQ bindings or policies panels.

../_images/ExportSchema.png

Instead of exporting to a file, you can also press Ctrl+C or pick “Copy schema” from the context menu to get selected schema on the clipboard.

Import/paste schema

Click on target server, queue, queue group, etc. in the left tree panel, or in the right-side queues panel, and pick “Import schema” or “Paste schema” from context menu. You can also press Ctrl+V to paste directly.

Schema will not be immediately applied. You’ll first see changes compared to existing schema. Not all schemas can be imported into all targets. For instance if it’s from a different messaging system, or if you’re trying to import topics into queues, or something similar QueueExplorer will display a message that combination is not possible.

Note

Schema changes can potentially be dangerous. QueueExplorer will never delete objects during schema import, but can modify existing ones. Nothing will be reconfigured on the server until you preview changes and confirm that they should be applied.

Import schema dialog

Whenever schema is imported or pasted from clipboard, QueueExplorer will compare it with the current schema on the server. You’ll see a window displaying differences.

../_images/ImportingSchema.png

By clicking one of 4 symbols on the top of the window, you can turn on or off display of:

  • new objects
  • objects which already exist in current schema, but with different configuration
  • objects which are exactly the same in imported and current schema
  • objects which only exist in current schema but not in the imported one

In some cases, QueueExplorer will display additional checkbox at the top, like “Include subscriptions”. That allows you to turn on or off child objects, e.g. subscriptions within topics. You can select or deselect objects which will be imported. At this point, no changes will be made yet.

After clicking “Preview/Run >>” button, QueueExplorer will display another window, listing all the changes it will perform. Actual changes will be sent to server only after you press “Run Changes” button.

../_images/RunSchemaChanges.png

Modified objects

If there is already an object on the server with the same name as imported one but with different configuration, QueueExplorer will display differences. Some queueing systems allow existing objects to be modified, some don’t allow any changes. Also, in some cases we can change only subset of properties, some can’t be changed (e.g. Transactional mode for MSMQ).

Duplicating objects

../_images/RenameImportedObject.png

You can copy/paste objects within same server. Since they’ll be equal to existing objects, you can click on object’s name in “Imported” column, and change its name. QueueExplorer will recompare schemas because there could be existing object with this new name.