/// <summary>
 ///
 /// </summary>
 /// <param name="table"></param>
 /// <param name="postgresTable"></param>
 /// <returns></returns>
 private List <UniqueKeyInfo> GetUniques(TableInfo table, PostgresTable postgresTable)
 {
     return(PostgresUniqueKeyManager
            .GetUniqueKeys(postgresTable)
            .Select(s => GetUnique(table, s))
            .ToList());
 }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override List <TableInfo> GetTableInfos()
        {
            PostgresTableManager.InitializeTables();
            PostgresColumnManager.InitializeColumns();
            PostgresPrimaryKeyManager.InitializePrimaryKeys();
            PostgresForeignKeyManager.InitializeForeignKeys();
            PostgresUniqueKeyManager.InitializeUniqueKeys();

            var postgresTables = PostgresTableManager.GetTables();

            _tableInfos = postgresTables.Select(ConvertToTableInfo).ToList();
            _tableInfos.ForEach(FillForeignKeyInfos);

            return(_tableInfos);
        }