Fork me on GitHub

Rapport de message :*
 

Re: Migration de newbb 3.0.8 í  newbbex 1.6

Titre du sujet : Re: Migration de newbb 3.0.8 í  newbbex 1.6
par Ghia sur 27/08/2008 15:40:18

C'est possible de le faire en SQL, mais il y a quelque chose a deviner pour le contenu du champs.
En general on fait:

Insert into table1
    
(champs1champs2champs3 )
  
select ch1ch2,     ch3 
   from table2

Table1 est la destination.
Champs1 - Champsx sont les noms des champs du table1 a remplir.
ch1 - chx sont les noms des champs du table2, qu'on utilise pour supplier les valeurs. Ce champs peuvent avoir la meme ou une autre nom.
Table2 est la source.

Ca marche quand la definition des champs en create table est la meme.

Si non, on peut changer la type par cast(champs as newtype) et newtype est BINARY[(N)], CHAR[(N)], DATE, DATETIME, DECIMAL[(M[,D])], SIGNED [INTEGER], TIME ou UNSIGNED [INTEGER]. Normalement ces conversations ne sont pas necessaire entre les types pour nombres.

Quand il y a trop de champs dans la source, ca ne pose pas une probleme. On n'utilise simplement pas dans la liste des champs du table de source.

Si il y a plus de champs dans le table de destination, alors il y a deux possibilitees:
Il y a une specification default pour le champs (voir create table): alors il faut rien faire. On laisse le champs hors la liste du champs de destination.
Autrement on doivent supplier une valeur fixe au position du champs dans la liste de champs de source.
example:

INSERT INTO table1
     
(champs1champs2champs3 )
  
SELECT ch15'texte pour champs3' 
   
FROM table2

C'est aussi possible de faire de calcule pour obtenir des valeurs comme ch4 + ch6 / 2 ou meme IF(ch7 > 2, 2, ch7) pour convertir ch7 vers le maximum de 2.

Maitenant au travail:
bb_forums vers bbex_forums

INSERT INTO bbex_forums (
  
forum_id,
  
forum_name,
  
forum_desc,
  
forum_topics,
  
forum_posts,
  
forum_last_post_id,
  
cat_id,
  
forum_type,
  
allow_html,
  
allow_sig,
  
hot_threshold
  
)
 
SELECT
  forum_id

  
forum_name,
  
forum_desc,
  
forum_topics,
  
forum_posts,
  
forum_last_post_id,
  
cat_id,
  
forum_type,
  
allow_html,
  
allow_sig,
  
hot_threshold
 FROM bb_forums



Note:
forum_access a une default.
forum_moderator est tout a fait differente, mais je crois c'est facile a remplir par le module admin, car le nombre des fora est limitee.
posts_per_page, topics_per_page, show_name, show_icons_panel, show_smilies_panel ont une default

Bon courage!
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

51 Personne(s) en ligne (38 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 51 | Plus ...