Question

I'm not yet familiar with Commerce Server and it's dev tools. I understand that there is a DB included, to hold the things being sold. Is it ok to set up a dev infrastructure where there is one test server and multiple dev workstations, and have these share the DB? I would also have a separate server that housed a CVS repo, and the multiple dev people would manually pull from the CVS server, do work, and check in. The Build and Deploy tool on the test server would pull from CVS, and deploy to the test server. My concern is the shared DB, and does each dev workstation need it's own DB? Looking for a general outline on how to best handle multiple devs, one test server, and a source control system.

Was it helpful?

Solution

I never try to to shared the database, but I don't think it's a good idea, since all dev environment could override other dev changes (in DB).

And if a developper must modify the database structure, that could hurt everyone.

I suggest to have a database on each dev environment, not necessary to be the same as the test one.

For your build and deploy for test server is good.

OTHER TIPS

It depends on how big the team is? In most of the small projects I worked everyone in the team have their own DB and specially when DB is Derby/Cloudscape but when it comes to big project using DB2 or Oracle it is always advisable to use shared DB which is stored in some other machine than everyone's local machine. Shared machine may cause the issue if one person deletes the data but this can get resolved with having just a small backup etc. while on the other end if everyone in team has their own DB it will be hard for Lead to ensure that everyone's DB are in sync (that is small update sql requires to run on everyone's machine to make their workstation working after every time they sync the code from CVS which is everyday job)

You could do that. IBM does support that configuration. Most developers uses the embedded WCS environment that comes with WCS Developer. That has the runtime along with Apache Derby as the database.

Also I would recommend you to talk to an IBM product expert. They can tell you best practices and you get access to him as part of your software purchase. Just open a PMR and ask your question.

Use local databases for each developer.

Then use something like liquibase to manage any database structure changes. Demand that all database changes be scripted, and placed in source repository, then add the liquibase servlet to your Stores project. That way, when developers check out new stuff, the local database will automatically be updated when they restart the server.

This has the added benefit, that your sql scripts actually gets tested at least once pr developer on the team.

Now, ideally, you'd be using wcbd for your developers also. But since that doesn't track which scripts have already been run on your system, it becomes either very tiresome to write super-defensive sql scripts (to check if this table has already had column X extended to Y characters), or in case of dataload, you might override something that really shouldn't be.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top