GUI for Sqitch - Sane database change management
Perl PLpgSQL Perl 6
Switch branches/tags
Nothing to show
Clone or download
Latest commit ced9ee1 Apr 28, 2017

README.md

App::Sqitch::GUI version 0.020

Ștefan Suciu 2016-08-17

GUI for Sqitch - Simple SQL change management.

Please see Sqitch for a detailed description of the command line application.

Requirements

  • Perl v5.10.01 or newer;
  • Sqitch v0.9996 or newer;
  • wxPerl, Moo and other modules;

Note: Moose is not a requirement starting with v0.020.

Status

Draft - Limited functionality:

  • Add project;
  • Set a default project;
  • Load a project and view it's details;

Test usage

% git clone https://github.com/stefansbv/sqitch-gui.git
% cd sqitch-gui

# Install prereqs
% dzil authordeps --missing | cpanm
% dzil listdeps --missing | cpanm

% PERL5LIB=lib perl bin/sqitch-gui

After the application start, if there is no project configured yet, a dialog is automaticaly opened. Click on the Add button and select a path to an existing Sqitch project. The path should be updated in the list. Click on the close button.

Select a project and Press the Load button.

Still much work to do but some feedback, in this stage, would be awesome...

Screenshots

The Project Panel

The Project Panel

The Plan Panel

The Plan Panel

The Change Panel

The Change Panel

Implementation notes

Sqitch is a command line program. The user runs sqitch, with the appropriate parameters each time he wants to execute a command. This is very different from a graphical user interface. A program with a GUI once started expects and executes the commands from the user until it is closed.

To integrate Sqitch into Sqitch::GUI there are a few problems that have to be solved:

The sqitch command is executed from a project directory from where it reads some configurations and the plan file. To be useful Sqitch::GUI needs to keep the list of repositories in a configuration file located in standard places in order to be able to find, read and update it.

Command line parameter options, technically, can be used for GUI executable but is better to use only configurations instead.

Each command from the Sqitch interface should have a dedicated button in the GUI, but some of the commands take options (sometimes required ones, like sqitch show).

User Interaction - some commands require confirmation from the user. This can be implemented by using custom dialogs for each command.

License And Copyright

Copyright (C) 2012-2016 iovation Inc.

Copyright (C) 2016 Ștefan Suciu.

The license is the same as for Sqitch:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.