If you use NHibernate or Fluent NHibernate to define your domain model, you can use it to generate your sql scripts as well. There is a NuGet package RoundhousE.RefreshDatabase.FNH that brings some code to a console application (x86) to allow you to generate your SQL file and apply it to your local database immediately!
You may not have the same setup on everyone's local machine for database instances. In cases like this, you can use SQL Configuration Manager set the same client alias for everyone to use. Then you use the alias in the server parameter (which will be configurable in the next version of RefreshDatabase.FNH). Right now it is
(local) so you can set that as a client alias (if you don't already have that as an instance). See setup an alias and alternate.
private static bool _isThisInitialDevelopment = true; //are you in greenfield or have you been to production? private static string _nameOfScript = "0001_CreateTables_NH.sql"; //"0002_AlterTables_NH.sql" //name of the script that will be created by nhibernate SchemaExport/SchemaUpdate - this will change the most over time as you move into maintenance //roundhouse information private static string _databaseName = "__REPLACE__"; //name of your database on your local default instance private static string _pathToSqlScripts = @"..\..\..\__REPLACE__"; //This is the path to your scripts folder where Up/Views/Functions/Sprocs are the next folder below. This is a relative path from bin\Debug. The three sets of parent folders already here should get it out of your project folder so you can traverse into the database project folder. private static string _repositoryPath = "__REPLACE__"; //The path to your source control repository. Used only for information sake. //restore private static bool _restoreDuringMaintenance = true; //you want to restore if you have a production backup that is small enough. Otherwise you get into a bit more advanced scenario that this package doesn't cover well private static string _pathToRestore = @"\\\\__REPLACE__.bak"; //this is the path to the restore file, likely on the network so everyone can get to it //Note: Add a reference to the project that has the Mappings/Conventions private static string _mappingsAssemblyPath = @".\__REPLACE__.dll"; //After adding a reference, the file will be in the build directory, so you can just add the name of the dll here. private static string _conventionsAssemblyPath = @".\__REPLACE__.dll"; //If you don't have a conventions assembly, just use the same DLL you just used for mappings.
<class name="yourClassName" schema-action="none">
Last edited by ferventcoder,