Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 Site Related Forums
 The Yak Corral
 VSTE for DP

Author  Topic 

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 09:14:45
Is anybody using Microsoft Visual Studio 2005 Team Edition for Database Professionals?

Jay
to here knows when

Kristen
Test

22859 Posts

Posted - 2007-02-07 : 09:40:15
hehhe .. I thought Database Professionals used Notepad!
Go to Top of Page

harsh_athalye
Master Smack Fu Yak Hacker

5581 Posts

Posted - 2007-02-07 : 09:53:54
Who Cares...I am too lazy to use different tools unless it can't be done in QA (which is very rare)!





Harsh Athalye
India.
"The IMPOSSIBLE is often UNTRIED"
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 09:59:03
Team development options:
1.) Free-for-all, shoot-from-the-hip cowboy-style
2.) Management Studio project under source control
3.) Visual Studio 2005 Database Project under source control
4.) VSTE for DP

I use mostly 2, but inevitably, the actual database and the source control repository get out of sync (that is to say, someone makes a DML change to the DB without checking the script in/out). The same is possible with 3, and so far, I see no real benefit to VS for T-SQL over Management Studio. So far, without fail, 2 and 3 turn into 1 until something gets majorly fuct and we have to stop and regroup. I'm unclear if 4 will solve my problem, but I don't think so. The refactoring stuff in 4 would be helpful and the unit testing integeration stuff I don't need.

Why are development tools for us so immature when compared to the rest of the dev community?

Jay
to here knows when
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 10:02:31
Granted, if you are a DBA or in-house DB dev-lite, VSTE4DP is not for you ... but for a team of designers/proc-writers creating a shrink-wrapped product or major consulting deployment, trying to shoot-from-the-hip and manage quality using "process" is a PITA.

Jay
to here knows when
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2007-02-07 : 10:32:39
What's wrong with dis-allowing all DDL unless it is scripted?

And then if the script is stored in a project folder it (presumably) gets into the Source Control autoMagically, no?

Kristen
Go to Top of Page

X002548
Not Just a Number

15586 Posts

Posted - 2007-02-07 : 10:34:07
Jay, where the heck have you been? Where the heck have I been?

Who would let object changes be made with out the dba group doing it?



Brett

8-)

Hint: Want your questions answered fast? Follow the direction in this link
http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx

Add yourself!
http://www.frappr.com/sqlteam



Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 11:18:39
quote:
Originally posted by Kristen

What's wrong with dis-allowing all DDL unless it is scripted?



How?

With a .NET project (under-source control), the one truth resides under control. At any given time, you can (should be able to) make a build from source control. The concept of someone changing a method outside of source control simple doesn't exist.

Not the same for a SQL Project in Managment Studio under SourceSafe. The one truth is what is on the database server and source control is a view of that truth that is only as good as the "people processes" in place that keep it in sync. Usually, people processes fall apart, especially when DBAs put on Nomex suits and helmets to fight fires.


Jay
to here knows when
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 11:20:08
VSTE4DP makes things a little better by giving you a tool to visually see where the people processes have fallen apart, but as best I can tell, there is no tool that takes the people process out of the equation.

Jay
to here knows when
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 11:28:19
quote:
Originally posted by X002548

Jay, where the heck have you been? Where the heck have I been?


Been working ... my SQLTeam times seems to come in spurts.

quote:
Originally posted by X002548
Who would let object changes be made with out the dba group doing it?


Well, that kinda presumes you have a DBA group. With one or maybe two people you can shoot from the hip. Nightly backups is your source control. Lean and Mean. With 25 people, you make a 2-3 person DBA group that does nothing but prevent the DB developers from screwing each other up. But what about the middle group of 5 to 15 developers building a new database? Do you make one guy the DBA and have the other 4 ask him to check changes in and out of the DB? Software developers don't have to deal with that BS ... you can have a team of 50 .NET programmers and VS and SS alone will pretty much keep them from over-writing each others code. Why do DB teams need to hire an $80K/year person to do what .NET progammers get in code for less than 1/10th the cost?

Jay
to here knows when
Go to Top of Page

X002548
Not Just a Number

15586 Posts

Posted - 2007-02-07 : 11:47:55
What? No Data modeling?

The landscape you described to us is, scary



Brett

8-)

Hint: Want your questions answered fast? Follow the direction in this link
http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx

Add yourself!
http://www.frappr.com/sqlteam



Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 12:15:12
Brett, I don't know how to do modeling in such a way that frees me from the pains of software process. Every place I've worked, a logic model is established but the physical data model lives and adapts as requirements are tackled.

Do you think developers have all the object models etched in stone before writing a single line of code? I've never seen it.

Jay
to here knows when
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2007-02-07 : 12:35:23
"How?"

I suppose "hire & fire" is not going to cover it?

"but as best I can tell, there is no tool that takes the people process out of the equation."

Script out the database, each night, and stick that in your Version Control?

Probably better than nothing ... and at least provides some answers to "When did XXX change, and in what way"

Kristen
Go to Top of Page

spirit1
Cybernetic Yak Master

11752 Posts

Posted - 2007-02-07 : 13:10:54
or run have a trace running?



Go with the flow & have fun! Else fight the flow
blog thingie: http://weblogs.sqlteam.com/mladenp
Go to Top of Page

jezemine
Master Smack Fu Yak Hacker

2886 Posts

Posted - 2007-02-07 : 16:50:36
quote:
Originally posted by Page47

quote:
Originally posted by Kristen

What's wrong with dis-allowing all DDL unless it is scripted?



How?

With a .NET project (under-source control), the one truth resides under control. At any given time, you can (should be able to) make a build from source control. The concept of someone changing a method outside of source control simple doesn't exist.

Not the same for a SQL Project in Managment Studio under SourceSafe. The one truth is what is on the database server and source control is a view of that truth that is only as good as the "people processes" in place that keep it in sync. Usually, people processes fall apart, especially when DBAs put on Nomex suits and helmets to fight fires.


Jay
to here knows when



In our org what's on the db server is NOT the truth. If it's not in source control, it's not in the product. each object is checked in as a separate file, and there's a bat file that executes them to produce a "build" of the relevant database, including seed data. Seed data, if it's a small amount, is checked in as well. if it's millions of rows, we put a bcp file on a separate file server that's backed up (but not version controlled).

Of course, it's up each org to put the "database compiler" thing in practice. The build process for a database is very much a homegrown thing. This is in stark contrast to compiled binaries: there you don't have to build your own C# compiler!


www.elsasoft.org
Go to Top of Page

rockmoose
SQL Natt Alfen

3279 Posts

Posted - 2007-02-07 : 17:28:37
quote:
Originally posted by jezemine

quote:
Originally posted by Page47

quote:
Originally posted by Kristen

What's wrong with dis-allowing all DDL unless it is scripted?



How?

With a .NET project (under-source control), the one truth resides under control. At any given time, you can (should be able to) make a build from source control. The concept of someone changing a method outside of source control simple doesn't exist.

Not the same for a SQL Project in Managment Studio under SourceSafe. The one truth is what is on the database server and source control is a view of that truth that is only as good as the "people processes" in place that keep it in sync. Usually, people processes fall apart, especially when DBAs put on Nomex suits and helmets to fight fires.


Jay
to here knows when



In our org what's on the db server is NOT the truth. If it's not in source control, it's not in the product. each object is checked in as a separate file, and there's a bat file that executes them to produce a "build" of the relevant database, including seed data. Seed data, if it's a small amount, is checked in as well. if it's millions of rows, we put a bcp file on a separate file server that's backed up (but not version controlled).

Of course, it's up each org to put the "database compiler" thing in practice. The build process for a database is very much a homegrown thing. This is in stark contrast to compiled binaries: there you don't have to build your own C# compiler!


www.elsasoft.org



As soon as the db is in production it IS the truth.

rockmoose
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-07 : 17:55:33
Yeah, Jesse ... that seems to be the only way to do it ... I was hoping VSTE4DB was going to do, at least, some of that stuff, but it doesn't look like it. Neat tools, but not the DB killer app I was hoping for ... and not worth the crazy price tag, I should mention.


Jay
to here knows when
Go to Top of Page

jezemine
Master Smack Fu Yak Hacker

2886 Posts

Posted - 2007-02-07 : 19:47:34
quote:
Originally posted by rockmoose
As soon as the db is in production it IS the truth.



Sort of. As a dev, I think of prod as the customer. The bits that the customer has diverge from what's in source control as soon as you ship. Bugs are found, fixed in source control, and may or may not be taken by the customer. Which is the truth then? As far as the dev process is concerned, the truth is still in source control. If it's not, the process is broken.

Jay: here's a cheap (free) database compiler for ya if you don't like high price tags:

http://www.elsasoft.org/tools.htm

1. scriptdb generates scripts of all objects in the db so you can put them in source control. probably you don't need that as you already are using VSS.

2. included in the download is a bat file that builds all generated scripts. feel free to edit it as appropriate for your system. it's basically a template for how you can "compile" the scripts generated in step 1. Using a batch file like that, it's easy to call it from another bat to do nightly bvts of all databases you have in VSS. and then send angry mail to the dev that broke the build. fun!






www.elsasoft.org
Go to Top of Page

Page47
Master Smack Fu Yak Hacker

2878 Posts

Posted - 2007-02-08 : 06:27:07
Thanks Jesse. In fact, I've already used your scripting tool for scripting out older DBs. It works great. (I've also been telling everyone I know about SQLSpec).

I've been using custom SQLCMD as the bit to execute the scripts to get a build.

The bottom line is I'm just not satisfied. I work in a small, smart, super-fast based group and slowing down to figure out what didn't get check in and other process related things is screwing up our flow more and more.

I think as a community, we need to start realizing that compared to the processes our Dev collegues are using, we are in the stone ages.

Jay
to here knows when
Go to Top of Page

Kristen
Test

22859 Posts

Posted - 2007-02-08 : 08:03:20
"In our org what's on the db server is NOT the truth. If it's not in source control, it's not in the product."

Us too.

We do compare DEV to QA though to check for any Odds & Sods that crept in. Then we re-modify the DDL scripts to match what happened on Dev; and then we have a Public Execution!

All our Sproc scripts have a little "insert" at the top that puts Date and Version into a logging table. Easy to compare DEV and QA to see if anything has changed "the wrong way round" - i.e. after running the latest scripts on QA it should have all-same-version as DEV and all-sprocs-more-recently-created than DEV.

We also compare "meta data" tables (changes to which are also supposed to be scripted)

Kristen
Go to Top of Page

jezemine
Master Smack Fu Yak Hacker

2886 Posts

Posted - 2007-02-08 : 12:52:19
Thanks Jesse. In fact, I've already used your scripting tool for scripting out older DBs. It works great. (I've also been telling everyone I know about SQLSpec).

thanks! if you use DB2 or PostgreSQL, there's a beta out that supports those: http://www.elsasoft.org/sqlspec_db2.zip

The bottom line is I'm just not satisfied. I work in a small, smart, super-fast based group and slowing down to figure out what didn't get check in and other process related things is screwing up our flow more and more.

that problem is not unique to sql development. one of the most common ways to break a C/C++/C# build is to forget to check in a file. The only way to catch this stuff early that I know of is to set up an autobuilder. basically this is a dedicated machine that monitors your source control installation. Whenever it sees a file has been added/changed, it gets latest and kicks off a FULL build (which would include building all databases, as well as all binaries). if you have BVTs, it would launch those as well (assuming the build didn't break).

if it finds a break, it sends out mail to the whole dev team. Someone, usually the breaker if they are around, investigates and fixes the problem. Spamming the entire dev team is a strong deterrent to breaking the build, let me tell you! Nothing motivates like being embarrassed in front of your peers.

This kind of system is widely used internally by many groups at ms. We don't have that kind of thing set up where I work now because we are too small, just don't have the resources. But with a larger project like sql server for example, I think it's essential. if you check in a change that breaks master or msdb, you want to know before that change get integrated into the mainline!

also, with a larger project, somehow the average number of breaks per dev seems to go up. that's my experience anyway. For a while at ms I worked on vista - every day there were build breaks and the breaker had to go to the "war room" the next day and explain himself. very motivating!


www.elsasoft.org
Go to Top of Page
    Next Page

- Advertisement -