Projet

Général

Profil

Actions

Bug #6996

fermé

Problème de script SQL sur migration 5.14 vers 5.15

Ajouté par David Lesimple il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Closed
Priorité:
High
Assigné à:
-
Début:
19/10/2015
Echéance:
% réalisé:

100%

Temps estimé:
Navigateur:
Tous
Votre version de Silverpeas:
5.14.4
Système d'exploitation:
Windows OS
Votre base de données:
MS SQL Server
Livraison en TEST:
Livraison en PROD:

Description

ERROR RETURNED BY THE RDBMS : La diffÚrence entre deux colonnes datetime a pr
ovoquÚ un dÚpassement de capacitÚ au moment de l'exÚcution.
*STATEMENT ON ERROR IS : /

Copying the media data.
*/

INSERT INTO SC_Gallery_Media (mediaId, mediaType, instanceId,
title, description, author, keyWord,
beginVisibilityDate, endVisibilityDate,
createDate, createdBy, lastUpdateDate, lastUpdated
By)
SELECT
cast(photoId as varchar),
'Photo',
instanceId,
title,
description,
author,
keyword,
case
when beginDate = '0000/00/00' THEN -2208992400000
else cast(DATEDIFF(s, '1970-01-01 00:00:00', convert(datetime, beginDate
, 111)) as bigint) * 1000
END,
case
when endDate = '9999/99/99' THEN 32503590000000
else cast(DATEDIFF(s, '1970-01-01 00:00:00', convert(datetime, endDate,
111)) as bigint) * 1000
END,
convert(datetime, creationDate, 111),
creatorId,
CASE WHEN updateDate IS NOT NULL THEN convert(datetime, updateDate, 111)
ELSE convert(datetime, creationDate, 111) END,
CASE WHEN updateDate IS NOT NULL THEN updateId
ELSE creatorId END
FROM
SC_Gallery_Photo_up005 d:\Silverpeas\dbRepository\mssql\gallery\up005\create
_table.sql.
ERROR - Database build FAILED (19/10/15 10:56).*********************************

Mis à jour par Miguel Moquillon il y a plus de 8 ans

  • Statut changé de New à Feedback

Nous avons des tests automatiques d'installation et de mise à jour Silverpeas 5.15-SNAPSHOT avec comme bases de données SQLServer, Oracle et PostgreSQL et nous avons eu aucun retour d'erreurs sur ce sujet.

Par précaution, j'ai testé la mise-à-jour d'une 5.14.4 vers la 5.15-SNAPSHOT avec une base de données SQLServer et avec un certain nombre d'images dans une gallery et là non plus, pas d'erreur de migration.

Il faudrait voir l'état de la table SC_Gallery_Photo au départ, si cette dernière aurait des données incohérentes qui provoqueraient ce problème.

Mis à jour par David Lesimple il y a plus de 8 ans

oui mais des tests avec beaucoup de données, c'est toujours mieux ;o)
J'ai trouvé, sur la colonne endDate, on a une ligne avec 2300/02/28..
quelle est la limite ?

Mis à jour par Miguel Moquillon il y a plus de 8 ans

https://msdn.microsoft.com/fr-fr/library/ms189794(v=sql.120).aspx
Le problème vient de la fonction datediff propre à SQLServer qui renvoie un int et non un bigint, provoquant ainsi un dépassement de taille du type lorsque la différence entre la date de début et celle de fin (utilisée pour calculer la date en secondes depuis la référence classique du 1 janvier 1970) devient trop grande.
Autrement dit, la date ne peut pas dépasser 2038/01/19 inclue.

Mis à jour par David Lesimple il y a plus de 8 ans

  • Statut changé de Feedback à Closed
  • % réalisé changé de 0 à 100

Merci Miguel, cette indication propre à MSSQL pourra être mise dans la release notes ?

Actions

Formats disponibles : Atom PDF