コード例 #1
0
ファイル: Migrator.cs プロジェクト: bowmark/allauth.lib
        private static void CreateVersionInfo(DbConnection db)
        {
            using (var conn = db.Connect())
            {
                var sql = "CREATE TABLE `VersionInfo` (" +
                          "`Version` INTEGER NOT NULL, " +
                          "`AppliedOn` DATETIME DEFAULT CURRENT_TIMESTAMP, " +
                          "`Description` TEXT);";
                conn.Query(sql);

                sql = "CREATE UNIQUE INDEX IF NOT EXISTS `UC_Version` ON `VersionInfo` (`Version` ASC);";
                conn.Query(sql);
            }
        }
コード例 #2
0
ファイル: Migrator.cs プロジェクト: bowmark/allauth.lib
        public void MigrateToLatest(DbConnection db)
        {
			var versionInfo = GetVersionInfo (db);

            var currentVersion = versionInfo != null ? versionInfo.Version : 0;

            using (var conn = db.Connect())
            using (var transaction = conn.BeginTransaction())
            {
                do
                {
                    currentVersion++;
                } while (MigrateToVersion(conn, currentVersion));

                transaction.Commit();
            }
        }
コード例 #3
0
ファイル: Migrator.cs プロジェクト: bowmark/allauth.lib
        protected static VersionInfo GetVersionInfo(DbConnection db)
        {
            using (var conn = db.Connect())
            {
                var sql = "SELECT Version FROM `VersionInfo` ORDER BY Version DESC LIMIT 1";
                try
                {
                    return conn.Query<VersionInfo>(sql).FirstOrDefault();
                }
                catch (Exception e)
                {
                    if (!e.Message.Contains("no such table: VersionInfo"))
                        throw new Exception(e.Message, e);

                    CreateVersionInfo(db);
                    return conn.Query<VersionInfo>(sql).FirstOrDefault();
                }
            }
        }