Home Applications appmsw-dbdeploy

appmsw-dbdeploy

This application is not supported by InterSystems Corporation. Please be notified that you use it at your own risk.
5
1 reviews
0
Awards
237
Views
17
IPM installs
0
0
Details
Releases
Reviews  (1)
Issues
Articles  (1)
An example of deploying solutions with prepared databases, even without source code.

What's new in this version

fixed code

Repo-GitHub
OEX-zapm

Docker-ports

appmsw-dbdeploy

Gitter
DC
GitHub all releases

Quality Gate Status
GitHub last commit
license

You can protect your solution by supplying it to the customer without source code.
An example of creating a database archives without source code for deploying a solution from a repository with a package manager ZPM.

Installation with ZPM

If ZPM the current instance is not installed, then in one line you can install the latest version of ZPM.

set $namespace="%SYS", name="DefaultSSL" do:'##class(Security.SSLConfigs).Exists(name) ##class(Security.SSLConfigs).Create(name) set url="https://pm.community.intersystems.com/packages/zpm/latest/installer" Do ##class(%Net.URLParser).Parse(url,.comp) set ht = ##class(%Net.HttpRequest).%New(), ht.Server = comp("host"), ht.Port = 443, ht.Https=1, ht.SSLConfiguration=name, st=ht.Get(comp("path")) quit:'st $System.Status.GetErrorText(st) set xml=##class(%File).TempFilename("xml"), tFile = ##class(%Stream.FileBinary).%New(), tFile.Filename = xml do tFile.CopyFromAndSave(ht.HttpResponse.Data) do ht.%Close(), $system.OBJ.Load(xml,"ck") do ##class(%File).Delete(xml)

If ZPM is installed, then appmsw-dbdeploy can be set with the command

zpm:USER>install appmsw-dbdeploy

Installation with Docker

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

Clone/git pull the repo into any local directory

git clone https://github.com/SergeyMi37/appmsw-dbdeploy.git

Open the terminal in this directory and run:

docker-compose build
  1. Run the IRIS container with your project:
docker-compose up -d

First you need to update the ZPM version to the latest 0.3.2

docker-compose exec iris iris session iris
USER>zn "%SYS"
%SYS>zpm "install zpm"
%SYS>zpm "ver"
zpm 0.3.2

To create database, you need to run:

USER>do ##class(appmsw.sys.dbdeploy).CreateDBNS("LOCKDOWN")
USER>zn "LOCKDOWN"
LOCKDOWN>zpm "install isc-apptools-lockdown"

You can protect your solution by deleting the source code:

 USER>do ##class(appmsw.sys.dbdeploy).MakeClassDeployed("appmsw.security","LOCKDOWN")
 appmsw.security.lockdown deployed

Create an archive for database deployment and move it outside the container:

 USER>do ##class(appmsw.sys.dbdeploy).CreateTGZ("lockdown","/irisdev/app/db-tgz/")
 ...
 Create TarGZ /irisdev/app/db-tgz/lockdown.tgz

USER>do ##class(appmsw.sys.dbdeploy).CreateTGZ("lockdown","/irisdev/app/db-tgz/",1) ;,1= including the version in the archive name
...
Create TarGZ /irisdev/app/db-tgz/lockdown=2021-1-(Build-215-3U).tgz

Create your project based on appmsw-dbdeploy by adding your new archives files to it and deploying new databases. The archives will contain resources that can be implemented as independent modules ZPM:

USER>do ##class(appmsw.sys.dbdeploy).CreateDbFromTgz("lockdown","newlock")
Made with
Install
zpm install appmsw-dbdeploy download archive
Version
1.0.304 Dec, 2021
Category
Technology Example
Works with
InterSystems IRIS
First published
28 Nov, 2021
Last checked by moderator
27 Jun, 2023Works