Faits : A. Le 27 octobre 1999, A._ s'est fait ouvrir un compte par la banque _ SA à V._ et elle a simultanément attribué à cet établissement le mandat de gérer son avoir. Elle a stipulé une orientation « défensive » de la gestion confiée. Elle a néanmoins autorisé la banque « à investir dans une proportion indiquée par les circonstances pouvant aller jusqu'à 20% [de l'avoir] dans des véhicules de placement collectifs sortant du cadre des opérations bancaires ordinaires définies par les directives de l'Association suisse des banquiers sur le mandat de gestion de fortune ». La cliente a fait clore son compte le 12 mai 2009. Le 11 mars 2013, par l'entremise de son avocat, elle a reproché à la banque de n'avoir pas respecté l'orientation convenue et d'avoir « sans doute » provoqué un dommage évalué à 500'000 francs. B. Le 24 avril 2014, A._ a ouvert action contre la banque _ SA devant le Tribunal régional du Littoral et du Val-de-Travers. La défenderesse devait être condamnée à produire une ample documentation concernant l'exécution du mandat de gestion. Elle devait de plus être condamnée à payer une somme à chiffrer « selon le résultat de l'instruction », comprise entre 50'000 et 358'460 francs. La défenderesse a conclu au rejet de l'action. Le 22 janvier 2019, le tribunal a rendu un jugement séparé sur les conclusions tendant à la production de documents. Il a partiellement accueilli ces conclusions et il a condamné la défenderesse dans les termes ci-après: Condamne la banque _ SA à remettre à A._ dans les trente jours les documents suivants relatifs au compte n° xxx: les extraits des opérations d'investissement effectuées depuis l'ouverture du compte, tous les comptes bancaires ouverts à la dépendance des opérations d'investissement ainsi que les opérations effectuées, toutes les évaluations patrimoniales effectuées lors des clôtures annuelles, ainsi que le courrier des deux années précédant la demande du 19 juin 2009, sous menace de la peine d'amende prévue par l'art. 292 CP qui réprime l'insoumission à une décision de l'autorité. La Cour d'appel civile du Tribunal cantonal a statué le 6 juin 2019 sur l'appel de la défenderesse. Elle a accueilli cet appel et rejeté les conclusions de la demanderesse tendant à la production de documents. C. Agissant par la voie du recours en matière civile, la demanderesse requiert le Tribunal fédéral, à titre principal, de déclarer irrecevable l'appel formé contre le jugement du 22 janvier 2019. A titre subsidiaire, la demanderesse réclame la confirmation de ce jugement. La défenderesse conclut à l'irrecevabilité de ces conclusions principales et au rejet des conclusions subsidiaires. La demanderesse a spontanément déposé une réplique; la défenderesse n'a plus procédé.