Prorest cannot restore with Relative pathname?

Skc

Member
V9.1C Windows 98

I have backup a database "mydb" with relative structure to A:\ drive. Prior to backup prostrct list mydb shows .\mydb and mydb.st shows:-

#
b .
#
d "Schema Area":6,32 .

However on restore, prostrct list mydb shows the absolute pathname. No matter how I try using prorest, the restored database is absolute pathname.

Is this the way it is with prorest? Anyone who has successfully prorest with relative pathname?

Thanks for any clues.
 

cecsno

Member
create an empty void database in the location(s) you desire and restore to that database instead.

Skc said:
V9.1C Windows 98

I have backup a database "mydb" with relative structure to A:\ drive. Prior to backup prostrct list mydb shows .\mydb and mydb.st shows:-

#
b .
#
d "Schema Area":6,32 .

However on restore, prostrct list mydb shows the absolute pathname. No matter how I try using prorest, the restored database is absolute pathname.

Is this the way it is with prorest? Anyone who has successfully prorest with relative pathname?

Thanks for any clues.
 

Skc

Member
Tried the following steps:
In C:\dirOne
probkup mydb D:\mybackup [mydb is relative pathname]

In C:\dirTwo
copy C:\standard.st mydb.st [contains relative . pathname]
prostrct create mydb mydb.st [## void db]
prorest mydb D:\mybackup
Does not work.

However if ## is replaced with:
prodb mydb C:\standard
prorest mydb D:\mybackup
Works!

So it appears that prorest must require an existing relative pathname db to be present. If not it will always create Absolute pathname.

Thanks for the pointer, Cecsno.

Regards


cecsno said:
create an empty void database in the location(s) you desire and restore to that database instead.
 

cecsno

Member
I think the database standard has a different blocksize than the default for your system or some structural difference, if not your version of prorest or probkup is bugged. I have tried this on Windows and Unix and it works fine in both places.

Try this

prostrct list c:\standard >standard.lst

prodb newdb empty

prostrct list newdb >newdb.lst

compare the output.

This does not explain why you can not cd to a new directory and run a prorest.

cd \dirTwo
prorest newdb d:\mybackup

This should work.

Are you getting any messages from prorest?


Skc said:
Tried the following steps:
In C:\dirOne
probkup mydb D:\mybackup [mydb is relative pathname]

In C:\dirTwo
copy C:\standard.st mydb.st [contains relative . pathname]
prostrct create mydb mydb.st [## void db]
prorest mydb D:\mybackup
Does not work.

However if ## is replaced with:
prodb mydb C:\standard
prorest mydb D:\mybackup
Works!

So it appears that prorest must require an existing relative pathname db to be present. If not it will always create Absolute pathname.

Thanks for the pointer, Cecsno.

Regards
 

cecsno

Member
I have re-read your original message, I originally thought the prorest was not working, but now I take it your only concern was the full path name in the .st file. Yes, prodb creates a .st file with relative path names, and probkup/prorest creates a .st file with a full path names. This does not interfer with the restoration of databases though. I would guess two different programmers for prodb and prorest.

cecsno said:
I think the database standard has a different blocksize than the default for your system or some structural difference, if not your version of prorest or probkup is bugged. I have tried this on Windows and Unix and it works fine in both places.

Try this

prostrct list c:\standard >standard.lst

prodb newdb empty

prostrct list newdb >newdb.lst

compare the output.

This does not explain why you can not cd to a new directory and run a prorest.

cd \dirTwo
prorest newdb d:\mybackup

This should work.

Are you getting any messages from prorest?
 

Skc

Member
Sorry, I may not have explained clearly the problem I had. Let me rephrase it:

I need my database to have Relative pathname stored within the database. Pathname is specified in the .st file but when a database is created the pathname is also stored, if I am not wrong, in the .db file which is more critical. Why I want Relative pathname is because it would be easier for me to transfer the whole database to some other directories or a Network drive and it should still work.

As such I need Prorest to Restore in such a way that it retains the Relative pathname in .db. Prorest is always successful. But the problem is that if I simply prorest to another, say, blank directory (where I did not do any prodb), prorest can restore to that directory but the pathname within the .db would be changed to an Absolute pathname (of the new location). That's not what I want . I need the .db to retain Relative pathname wherever I choose to restore it.

This has been solved. As per your suggestion, what I do now is BEFORE prorest to an empty directory, first do a 'prodb mynewdb empty (or my-standard-relative-db)', cd to the new location and do a prorest. This works. :)

Hope I am clearer and thanks.

Regards
Skc
 
Top