/// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public override List <TableInfo> GetTableInfos()
        {
            MySqlTableManager.InitializeTables();
            MySqlColumnManager.InitializeColumns();
            MySqlPrimaryKeyManager.InitializePrimaryKeys();
            MySqlForeignKeyManager.InitializeForeignKeys();

            var postgresTables = MySqlTableManager.GetTables();

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

            return(_tableInfos);
        }
        /// <summary>
        ///
        /// </summary>
        public override void Initialize()
        {
            DatabaseConnection = ServicesContainer.GetService <IDatabaseConnection>();
            var namingManager = ServicesContainer.GetService <INamingManager>();

            namingManager.ForeignKeyNamingManager = new MySqlForeignKeyNamingManager();
            namingManager.PrimaryKeyNamingManager = new MySqlPrimaryKeyNamingManager();
            namingManager.UniqueKeyNamingManager  = new MySqlUniqueKeyNamingManager();

            MySqlTableManager      = new MySqlTableManager(this);
            MySqlColumnManager     = new MySqlColumnManager(this);
            MySqlPrimaryKeyManager = new MySqlPrimaryKeyManager(this);
            MySqlForeignKeyManager = new MySqlForeignKeyManager(this);
            DefaultSchema          = GetDatabaseName();
        }