Пример #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"));
            }
        }
Пример #2
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
        }