I’ve been working on a CMS based in ASP.NET MVC2 using a poco based linq-to-sql repository that is connected to a SQL 2008 database.
I’m nearing completion on the CMS and now I’m thinking about deployment. Ideally, I would like the install process to be something like this:
- Copy CMS solution to server location
- Create empty database
- Change db connection string in web.config to new database
- Run script to create db tables (including relationships, constraints, and default data).
I’m not sure where to start with this kind of project. I have limited experience working with Stored Procedures. If it’s possible to do this progmatically in C# that would be preferable because it would be easier for me to work with.
Any thoughts on where I should start with this?
Edit – New thoughts
I wonder how difficult it would be to just have a database file (mdf?) that could just be renamed and copied to the sql server. Is that even possible?
I would suggest scripting out the creation of your new database and including it as a step in your application install.
You can let SQL Enterprise manager do a lot of the work for you to generate the script too. If you are using enterprise manager just right click your database and select:
Tasks -> Generate Scripts
In that wizard select your database and the “Script all objects in selected database”. That will end up generating a create script for your entire dB.
You can then take that script file and include it as a resource in your setup program, and run it during setup to create out your full dB.
A good thing to think about if you are going this route is Type data. You may want to include another script step that will populate your type data as the 1st script will only generate your dB, tables, and procs.