Example #1
0
        public void can_perform_adhoc_executereader_and_also_still_delete_the_database()
        {
            string databaseName = "issuetest";

            using (var database = new TemporarySQLiteDatabase(databaseName))
            {
                database.Create();

                string connectionString = database.SharedConnection.ConnectionString;  //string.Format("Data Source={0}; Version=3;", dbFilePath);


                var upgrader = DeployChanges.To
                               .SQLiteMonoDatabase(connectionString)
                               .WithScript("Script0002", "CREATE TABLE IF NOT EXISTS Bar (Id int)")
                               .Build();

                var result = upgrader.PerformUpgrade();
                Assert.IsTrue(result.Successful);
                // Calling execute reader on the adhoc sql runner causes a datareader to be created - and if not disposed of,
                // then the when TemporarySQLiteDatabase is disposed, it can't delete the file.
                var lastVersion         = database.SqlRunner.ExecuteReader("SELECT * FROM SchemaVersions ORDER BY SchemaVersionId DESC LIMIT 1");
                var appliedScriptRusult = lastVersion[0];

                // Assert.That(lastVersion[0].Values[""].ToString().EndsWith("Script0002"));
            }
        }
Example #2
0
 public void SetUp()
 {
     log           = Substitute.For <IUpgradeLog>();
     upgradeResult = null;
     scripts       = new List <SqlScript>
     {
         new SqlScript("Script1.sql", "create table Foo (Id int identity)"),
         new SqlScript("Script2.sql", "alter table Foo add column Name varchar(255)"),
         new SqlScript("Script3.sql", "insert into Foo (Name) values ('test')")
     };
     database             = new TemporarySQLiteDatabase("IntegrationScenarios");
     upgradeEngineBuilder = DeployChanges.To
                            .SQLiteDatabase(database.SharedConnection)
                            .WithScripts(new TestScriptProvider(scripts))
                            .LogTo(log);
 }
Example #3
0
        static void Main()
        {
            using (var database = new TemporarySQLiteDatabase("test"))
            {
                database.Create();

                var upgrader =
                    DeployChanges.To
                    .SQLiteDatabase(database.ConnectionString)
                    .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
                    .LogToConsole()
                    .Build();

                var watch = new Stopwatch();
                watch.Start();

                var result = upgrader.PerformUpgrade();

                watch.Stop();
                Display("File", result, watch.Elapsed);
            } // Database will be deleted at this point

            using (var database = new InMemorySQLiteDatabase())
            {
                var upgrader =
                    DeployChanges.To
                    .SQLiteDatabase(database.ConnectionString)
                    .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
                    .LogToConsole()
                    .Build();

                var watch = new Stopwatch();
                watch.Start();

                var result = upgrader.PerformUpgrade();

                watch.Stop();
                Display("InMemory", result, watch.Elapsed);
            } // Database will disappear from memory at this point
        }