Entretanto com a nova definição, as tabelas também vão ter novos nomes e portanto nem vai ser preciso fazer o rename. Será apenas a criação de novas tabelas com cópia/conversão de dados.
No dia 3 de agosto de 2015 às 19:34, Hugo Ferreira <[email protected]> escreveu: > Akira, > > Resumiste todas as possibilidades (pelo menos as que eu próprio tinha em > mente). > > 1. Comparar a versão (que até tenho essa informação) é uma possibilidade > sendo que existe um script de migração que é validado sempre mas só corre > uma vez. Um dia mais tarde (1 ano) poderá ser removido com segurança. > > 2. Para mim a hipótese do XML e cache está de fora (cada bit de memória e > ms de processamento são importantes para algo que está no centro). > > 3. Por outro lado o hasProperty acaba por ser uma boa hipótese > simplesmente porque sei de antemão que os campos estão todos camel-case > (nova versão) ou lower-case (isto é uma garantia). > Obrigava a meter este código na minha framework. > > Acho que vou considerar o uso da hipótese 1, fazendo um backup > automaticamente, rename a cada tabela para _old, correr o create table pelo > ORM e depois copiar os dados. > > > Abs, > Hugo. > > No dia 3 de agosto de 2015 às 14:36, Akira <[email protected]> escreveu: > >> Sem usares o XML de introspecção vai ser difícil. Pressupondo que sejam >> value objects, se souberes o serial de versão e estrutura do VO poderias >> montar um handler consoante a versão. Se não sabes nada disso resta-te : >> A) usares o XML e fazeres cache dele >> B) tentares o hasProperty com as variações possíveis >> Não sei o que será mais rápido. Tudo depende do contexto >> On 3 Aug 2015 14:24, "Hugo Ferreira" <[email protected]> wrote: >> >>> João, >>> >>> Peço desculpa mas não me devo ter expressado bem. >>> >>> Imagina que o objecto "entity" tem uma propriedade "name" e eu não sei >>> se é "name" ou "Name" mas faço >>> var meuValor:String = entity["Name"] >>> >>> O AS3 não vai encontrar o valor porque a propriedade é case-sensitive. >>> >>> Fazer entity[field.toLowerCase()] também não me vai resolver o problema >>> porque a propriedade pode ser Name na realidade. >>> >>> Eu sei que é díficil de entender sem contextualizar mas trata-se de uma >>> migração/correção de modelo de dados já existindo dados. >>> >>> Eu posso simplesmente ignorar isto e continuar com o modelo de dados >>> antigo mas gostaria de corrigi-lo mas se o preço a pagar for de grande >>> risco ou de grande perda de performance vou manter as coisas tal como estão >>> dai que eu sei que posso usar a introinspeção do flex obtendo um xml de >>> toda a estrutura do objecto mas isto vai ser lento e/ou requerer memória >>> para colocar em cache. >>> >>> >>> Obrigado, >>> Hugo. >>> >>> No dia 3 de agosto de 2015 às 12:25, João Fernandes < >>> [email protected]> escreveu: >>> >>>> Tens sempre a possibilidade de fazer toLowerCase() de ambos os lados e >>>> funciona quase sempre. Digo quase sempre porque isto não contempla accent >>>> insensitive o que não irá funcionar neste caso. >>>> >>>> Para accent insensitive terás de usar o Collator para comparar 2 >>>> expressões mas atenção que só funciona para match direto e não para match >>>> algures na expressão comparada. A propriedade a definir é >>>> ignoreDiacritics >>>> <http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/globalization/Collator.html#ignoreDiacritics> >>>> >>>> >>>> funciona >>>> http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/globalization/Collator.html >>>> >>>> 2015-08-03 1:07 GMT+01:00 Hugo Ferreira <[email protected]>: >>>> >>>>> Boa noite, >>>>> >>>>> Neste exemplo a seguir, se por acaso a propriedade existente no >>>>> objecto entity for "name" em vez de "Name", o flex não vai localizar uma >>>>> vez que é case sensitive. >>>>> >>>>> var field:String = "Name"; >>>>> >>>>> if (entity[field] == sameObject[field]) >>>>> { >>>>> } >>>>> >>>>> Alguém sabe como tornar isto case insensitive sem perder muito a >>>>> performance e que preferência se alterar o comportamento a nível global ? >>>>> >>>>> PS: Não gostaria de ter de analisar o XML do objectos. >>>>> >>>>> -- >>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da >>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" >>>>> do Grupos do Google. >>>>> Para anular a subscrição deste grupo e parar de receber emails do >>>>> mesmo, envie um email para [email protected]. >>>>> Para publicar uma mensagem neste grupo, envie um email para >>>>> [email protected]. >>>>> Visite este grupo em http://groups.google.com/group/riapt. >>>>> Para mais opções, visite https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> João Fernandes >>>> >>>> -- >>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da >>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" >>>> do Grupos do Google. >>>> Para anular a subscrição deste grupo e parar de receber emails do >>>> mesmo, envie um email para [email protected]. >>>> Para publicar uma mensagem neste grupo, envie um email para >>>> [email protected]. >>>> Visite este grupo em http://groups.google.com/group/riapt. >>>> Para mais opções, visite https://groups.google.com/d/optout. >>>> >>> >>> -- >>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da >>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do >>> Grupos do Google. >>> Para anular a subscrição deste grupo e parar de receber emails do mesmo, >>> envie um email para [email protected]. >>> Para publicar uma mensagem neste grupo, envie um email para >>> [email protected]. >>> Visite este grupo em http://groups.google.com/group/riapt. >>> Para mais opções, visite https://groups.google.com/d/optout. >>> >> -- >> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da >> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do >> Grupos do Google. >> Para anular a subscrição deste grupo e parar de receber emails do mesmo, >> envie um email para [email protected]. >> Para publicar uma mensagem neste grupo, envie um email para >> [email protected]. >> Visite este grupo em http://groups.google.com/group/riapt. >> Para mais opções, visite https://groups.google.com/d/optout. >> > > -- Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google. Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para [email protected]. Para publicar uma mensagem neste grupo, envie um e-mail para [email protected]. Visite este grupo em http://groups.google.com/group/riapt. Para mais opções, consulte https://groups.google.com/d/optout.
