Пример #1
0
        public static DatabaseVersionInfo GetDatabaseVersionInfo(this DatabaseFacade database)
        {
            DatabaseVersionInfo info       = null;
            DbConnection        connection = database.GetDbConnection();

            try
            {
                connection.Open();
                info = new DatabaseVersionInfo()
                {
                    Name              = connection.GetType().Name,
                    Version           = connection.ServerVersion,
                    Server            = connection.DataSource,
                    Database          = connection.Database,
                    Migrations        = database.GetMigrations(),
                    AppliedMigrations = database.GetAppliedMigrations(),
                    PendingMigrations = database.GetPendingMigrations()
                };
            }
            finally
            {
                connection.Close();
            }

            return(info);
        }
Пример #2
0
        public static DatabaseVersionInfo GetDatabaseVersionInfo(this DatabaseFacade database)
        {
            using var connection = database.GetDbConnection();
            connection.Open();

            using var cmd = connection.CreateCommand();

            cmd.CommandText = "select pg_size_pretty(pg_database_size(current_database()))";
            var databaseSize = cmd.ExecuteScalar().ToString();

            cmd.CommandText = "select count(*) from sbilog where level in ( 'Fatal', 'Error' ) and DATE_PART('day', CURRENT_DATE - raise_date) < 1";
            var appErrorCount = cmd.ExecuteScalar().ToString();

            var info = new DatabaseVersionInfo()
            {
                Name              = connection.GetType().Name,
                Version           = $"PostgreSQL {connection.ServerVersion}",
                Server            = connection.DataSource,
                Database          = connection.Database,
                Migrations        = database.GetMigrations(),
                AppliedMigrations = database.GetAppliedMigrations(),
                PendingMigrations = database.GetPendingMigrations(),
                DatabaseSize      = databaseSize,
                AppErrorCount     = appErrorCount
            };

            return(info);
        }