public static void Run(string connectionString)
        {
            var firstMigration = typeof(Lucid.Database.Migrations.Y2016.M01.V01);
            var assembly = new SingleAssembly(firstMigration.Assembly);

            var migrationGenerator = new SqlServer2008Generator();
            var announcer = new NullAnnouncer();
            var options = new ProcessorOptions();
            var dbFactory = new SqlServerDbFactory();

            var runnerContext = new RunnerContext(announcer)
            {
                Database = "SqlServer2008",
                Connection = connectionString,
                Targets = new string[] { firstMigration.Assembly.FullName },
                NestedNamespaces = true,
                Namespace = "Lucid.Database.Migrations",
            };

            using (var connection = new SqlConnection(connectionString))
            using (var processor = new SqlServerProcessor(connection, migrationGenerator, announcer, options, dbFactory))
            {
                var runner = new MigrationRunner(assembly, runnerContext, processor);

                runner.MigrateUp();
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Migration runner
 /// </summary>
 /// <param name="connectionString">Database connection string</param>
 /// <param name="assembly">Assembly containing the migration classes to run</param>
 public Runner(string connectionString, Assembly assembly)
 {
     _connectionString = connectionString;
     _assembly = assembly;
     Announcer = new NullAnnouncer();
     Options = new ProcessorOptions();
     MigrationGenerator = new SqlServer2008Generator();
 }
        public IMigrationProcessor CreateMigrationProcessor(RunnerContext context, IDbConnection connection)
        {
            try
            {
                if (connection.State != ConnectionState.Open)
                    connection.Open();

                IMigrationGenerator migrationGenerator;
                using (var command = new SqlCommand("SELECT CAST(LEFT(CAST(SERVERPROPERTY('productversion') AS varchar(50)),CHARINDEX('.',CAST(SERVERPROPERTY('productversion') AS varchar(50)))-1)AS int)", connection as SqlConnection))
                {
                    var version = (int)command.ExecuteScalar();
                    switch (version)
                    {
                        case 9:
                            migrationGenerator = new SqlServer2005Generator();
                            break;

                        case 10:
                            migrationGenerator = new SqlServer2008Generator();
                            break;

                        default:
                            migrationGenerator = new SqlServer2012Generator();
                            //                            throw new Exception(string.Format("无法识别的数据库版本:{0}。", version));
                            break;
                    }
                }

                return new SqlServerProcessor(
                                        connection
                                        , migrationGenerator
                                        , context.Announcer,
                                        new ProcessorOptions
                                        {
                                            PreviewOnly = context.PreviewOnly,
                                            ProviderSwitches = context.ProviderSwitches,
                                            Timeout = context.Timeout
                                        }
                                        , new SqlServerDbFactory());
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                    connection.Close();
            }
        }
Esempio n. 4
0
        public static void Main(string[] args)
        {
            var connection = new SqlConnection("data source=172.16.1.186;UID=lssuser;PWD=password1;initial catalog=lss");

            var sb = new StringBuilder();
            var textWriter = new StringWriter(sb);
            var announcer = new TextWriterAnnouncer(textWriter);

            var generator = new SqlServer2008Generator();
            var processor = new SqlServerProcessor(connection, generator, announcer, new ProcessorOptions(), new SqlServerDbFactory());

            var dumper = new SqlServerSchemaDumper(processor, announcer);

            var schema = dumper.ReadDbSchema();
            var schemaWriter = new SchemaWriter();
            schemaWriter.WriteToFile(schema, "C:\\migration.cs");
        }
        protected static void ExecuteWithSqlServer2008(Action<IMigrationProcessor> test, bool tryRollback)
        {
            var serverOptions = IntegrationTestOptions.SqlServer2008;

            if (!serverOptions.IsEnabled)
                return;

            var announcer = new TextWriterAnnouncer(System.Console.Out);
            announcer.Heading("Testing Migration against MS SQL Server 2008");
            var generator = new SqlServer2008Generator();

            ExecuteWithSqlServer(serverOptions, announcer, generator, test, tryRollback);
        }
 public void SetUp()
 {
     generator = new SqlServer2008Generator();
 }
 public void Setup()
 {
     Generator = new SqlServer2008Generator();
 }