It is possible to access the relativity API and copy the schemas, domains and everything from one server to another, through an application made in delphi.
I know that schemas are possible, but I wanted to copy everything. including login and password and DB connections…
It would be much easier to just copy the Relativity configuration folder entirely (either directly or using an additional custom service).
Existing Relativity Server AdminService API would allow to copy server settings as well, however this API was not designed to be used directly by 3rd party software.
procedure TForm3.Button1Click(Sender: TObject);
var
adm, adm2: IAdminService;
s: TROBinaryMemoryStream;
dl: DataAbstract4_intf.StringArray;
i: Integer;
begin
ROWinInetHTTPChannel1.TargetUrl :='http://localhost:7100/bin';
ROWinInetHTTPChannel2.TargetUrl :='http://localhost:7100/bin'; // emulate 2nd instance
ROBinMessage1.ClientID := NewGuid;
ROBinMessage2.ClientID := NewGuid;
if not CoLoginService.Create(ROBinMessage1, ROWinInetHTTPChannel1).AdminLogin('Administrator','Relativity') then begin
ShowMessage('Relativity1: Not logged!');
end;
if not CoLoginService.Create(ROBinMessage2, ROWinInetHTTPChannel2).AdminLogin('Administrator','Relativity') then begin
ShowMessage('Relativity2: Not logged!');
end;
adm := CoAdminService.Create(ROBinMessage1, ROWinInetHTTPChannel1);
adm2 := CoAdminService.Create(ROBinMessage2, ROWinInetHTTPChannel2);
dl := adm.GetDomainList;
for i:=0 to dl.Count - 1 do begin
s := adm.ExportDomain(dl[i]);
s.SaveToFile(dl[i]+'.domain');
adm2.CreateDomain(dl[i]+'_copy');
adm2.ImportDomain(dl[i]+'_copy',s);
end;
CoLoginService.Create(ROBinMessage1, ROWinInetHTTPChannel1).Logout;
CoLoginService.Create(ROBinMessage2, ROWinInetHTTPChannel2).Logout;
ShowMessage('Done!');
end;
you can export Relativity RODL with Service Builder: