I am trying to figure out if there is a way of taking our production settings/code and rehost it on our training server while retaining the current users and rights on the server. Already know how to copy over the code and change all the settings to reflect the new server name and database server. Also we usually take the database and export it/import it into the other database server. Also taking the LDAP and export, rename server name and import it back in to WindchillDS.. The hard part is retaining the users and settings contained in the training server. Anyone ever do that? Thanks!
As you are well aware from this post, you are correct that when you rehost production system to a training server, it wipes out all the data that was on the training server and makes a mirror image of it. If you're looking to retain information on the test server, the high-level answer is to find out what you can do to backup that information, and then restore it AFTER the rehost.
The backup/restore strategy differs depending on what exactly you are trying to backup and restore, but to address your question regarding "users and settings" I'll address users here: one option is the LoadFromFile framework.
Information on LoadFromFile (and LoadFileSet, which is a bulk way to handle many LoadFromFile files) can be found in PTC documentation (look for "data load" guides), but essentially the idea here is that you prepare an XML file in a specific way to define all the user information upfront, then run a simple Windchill shell command to load it in programmatically - and users is one of these things (among many) that can be loaded. You can bulk load objects at rates of thousands per second or so, MUCH faster than manually. You can also load demo data in this manner as well - in fact, it's the same framework the Windchill installer uses to load its base and demo data upon initial installation.
If you're interested I'd be happy to discuss this in further detail to address the other settings you mention. Feel free to reach me at email@example.com.
Good answer Bob. Todd also mentioned that to me. What about going into each library or project in details and export the users and that out and then import it back in on the re-hosted/refreshed server? Would that accomplish the same for me? Thanks, Mitch
Mitch, what I recommend below is not supported by PTC, always try on a cloned sandbox or backup Training in full first.
The problem you face is not all that different to how divestures are managed.
The best route to handle this is:
Database synchronization (presume you know how to use SQL to isolate differences)
Absent those skills required to achieve the above, find someone in company who can help in that capacity. On overlap, it mainly is ensuring per database table entries, ensuring no overlap in the ID2A2 or derived from foreign key columns. A good DBA can do this very quickly and easily.Othern column names, this is really a generic task and not speciifc to Windchill. I use it all time in data migrations. Classname and numeric ids make this quite easy and WinDU capitalizes on it or had in the past..
On new systems:
Proper change ad configuration management, deploy users people subsection as LDIF file, not full LDIF file; disallow product, library and project team administration by end users. Place groups in each role instead. Promote configuration from server to server in a less manual if not completely automated fashion.
Before any data is added, create "Z" tables as duplicates of fresh system. Copy all tables as duplicates appending a letter Z to the front so as to make them appear after all real tables, and always have them as a backup to revert to.
I also always did this for testing PartsLink implementations and being able to rollback system without loss of any other functionality. Being a programmer to know the relevant database tables is useful. Not supported by PTC of course.
On existing systems:
I almost guarantee, most users on the community forum have never done suggestions that follow. It's not difficult, just out-of-box thinking. Even PTC internally is likely not used. An opportunity to share - grin.
Synchronize unique user/role/group configurations. Where training server users are unique, for them to a new repository defined in WindchillDS. This is challenging for average folks, but is extremely secure, as the accounts are inaccessible on production if the repository is inaccessible from your Apache, IIS, Nginx, or other http web server. Keep in mind, method server sees them as normal users.
After synchronization, migrate to strategy advised above under new systems. , Ensure all users, groups, organizations, and other settings, are maintained on both servers. Make passwords different. Create users first in Windchill DS, then link in Corporate directory. This of course, can be an issue depending on user quantity. If that is an issue, feel free to reply and let us know.
Now users can be disabled/deactivated, you could just port over the UNION of the WTUser(s) where there are no problem ensuring in database comparison differences, the key references for equitable rows in other database tables are connected.
A reverse rehost of training to production, IF production has not gone live. If it has gone live, do not rehost, edit the training servers' (all) reference to not resolve to production IP addresses for production hostnames. Clone production. Copy to training. Access by end users for the moment requires a similar procedure on laptops, tablets, workstations, etc. You can even make prodution file vaults read only and keep them connected in training, test, etc. without duplicating content. New content going to a system specific vault. Isolates deltas in content. React and manage as needful.
I am not sure if you are a programmer or have operating system scripting knowledge, but that makes life easier. For example, I export LDIF from LDAP for ou=people and convert to user and group load file format if LDIF import is directly shunned. Like users of the BIF have challenges.
The training server and / or sandbox methodservers and other servers ideally should be offline in cases. Clearing all caches is a good idea. While systems are running, clearing principal cache or not caching at all.
I have been around the block on this MANY times. Not supported but very effective.
Time to complete improves per execution and the first time is data quantity delta specific.
Reply if questions or contact me directly through here if I happen to get busy and forget about the posting reply. It happens.