Drupal 7 no Windows - Problemas do módulo de arquivo

0

Instalado o Drupal 7 usando o instalador do Web Platform no Windows 2008

Por alguma razão, o módulo de arquivo, quando você carrega um arquivo, usa o primeiro poucas letras do nome do arquivo como chave única para armazenar no banco de dados, o que, é claro, causa problemas muito rápidos.

Eu estou querendo saber se alguém tem uma solução para isso?

An AJAX HTTP request terminated abnormally. Debugging information follows. 

Path: /file/ajax/field_file/und/0/form-EBMatHzV5cZXcWvXJtdADSdyw7Id9-GIpFM_NCJg_a4 

StatusText: n/a 

ResponseText:  Error message PDOException: SQLSTATE[23000]: [Microsoft][SQL Server Native Client10.0][SQL Server]Cannot insert duplicate key row in object 'dbo.file_managed' with unique index 'uri_unique'. in drupal_write_record() (line 6776 of  ..........\includes\common.inc). Error The website encountered an unexpected error. Please try again later.   

ReadyState: undefined
    
por TimothyP 09.02.2011 / 12:10

3 respostas

0

Eu experimentei exatamente o mesmo problema hoje. Aconteceu quando eu estava tentando carregar um novo tema.

Instalei outra instância do Drupal com um banco de dados MySQL para comparar as tabelas e verificar se havia um campo calculado lá.

Não havia nenhum. No MySQL, o índice é construído no campo 'uri'

Então, no meu banco de dados do servidor SQL, movi o índice 'uri_unique' do campo '__unique_uri' para o campo 'uri' (como no MySQL). E funcionou muito bem!

Eu assumo que é menos eficiente já que o campo é nvarchar (255) onde o campo calculado era um varbinary (16) ... e eu espero não estar em apuros mais tarde ... Mas pelo menos, isso resolveu o problema. problema.

    
por 14.02.2011 / 15:05
1

Acabei de encontrar o relatório de erros para esse problema: link (Existe um patch)

    
por 19.02.2011 / 12:49
0

Aparentemente alguns gênios inseriram isso no banco de dados:

o __unique_uri na tabela file_managed é um campo calculado:

(CONVERT([varbinary](16),hashbytes('MD4',coalesce(CONVERT([varbinary],[uri],0),CONVERT([varbinary],[__pk],0))),0))
    
por 09.02.2011 / 12:50