Kom ihåg mig?
Home Menu

Menu


flytta wordpress med SQL query

Ämnesverktyg Visningsalternativ
Oläst 2010-12-31, 06:58 #1
Mortekais avatar
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2004
Inlägg: 587
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
Mortekais avatar
 
Reg.datum: Jan 2004
Inlägg: 587
Tool flytta wordpress med SQL query

Klurar på att flytta min databas till ip.blogg men behöver lite hjälp med SQL.

Databaserna ser ut så här:

Wordpress till höger och ip.blog till vänster.
Bifogade bilder
Filtyp: jpg ipblogvswordpress.jpg (19.7 KB, 26 visningar)
Mortekai är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-31, 12:04 #2
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Kan du posta CREATE satserna för dessa två tabeller så blir det lite lättare (så slipper jag knacka in det manuellt i min databas).

Grundprincipen är dock att skriva ungefär så här:

Jag har i detta lilla exempel förutsatt at kolumnerna mappar 1:1 i den ordning kolumnerna är upplagda i nedanstående SQL-sats (INSERT ... respektive SELECT ...):



Kod:
-- Den trickiga delen är att mappa alla kolumnerna rätt så man får med 
-- så mycket info som möjligt från gamla tabellen.
-- 
-- Det största problemet är att mappa kommentarernas parent_ID till 
-- huvudartikelns NYA ID i den NYA tabellen, det kan krävas att du lägger 
-- upp en extra kolumn med ID till den gamla databasens PK för att du 
-- ska få ordning på det.
-- 
-- Ett annat problem är om det är olika datatyper som ska konverteras,
-- särskilt om du har en textdatatyp som är numerisk i den nya tabellen, 
-- då blir det kinkigt...

-- INSERT till nya tabellen
INSERT INTO IPBLOG (entry_author_id, entry_date, entry)

-- Hämta info från gamla tabellen 
SELECT post_author_id, post_date, post_excerpt 
FROM Wordpress;

Senast redigerad av Conny Westh den 2010-12-31 klockan 12:34
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-31, 12:39 #3
Mortekais avatar
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2004
Inlägg: 587
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
Mortekais avatar
 
Reg.datum: Jan 2004
Inlägg: 587
En enkel kopiering är inte så svårt, men går det att lägga in values i samma query? Blogid till exempel har ingen motsvarighet i Wordpress databasen så där måste jag lägga in ett värde så att rätt användare får bloggposten i sin blogg.

Idealiskt vore att köra något typ:
insert into ip.blogg (kol1, kol2, osv)
values null, 1, 2 osv
and
insert into ip.blogg(kol3, kol4, osv)
select val1, val2, val3 ,osv
from wordpress

men kan man göra så?
Har bara provat att antingen lägga in värden eller kopiera, aldrig båda samtidigt...
Mortekai är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-31, 13:40 #4
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
När du använder VALUES så kan du ersätta det med en SELECT i stället så kan du köra samma SQL-sats för hela databasen i en enda SQL-sats, precis som jag visade i mitt förra inlägg.

Du kan inte använda begreppet VALUES samtidigt som SELECT. SELECTen är mycket mer flexibel.

Förklara gärna mer var du hämtar värdet du vill ha in i blog_id så kanske jag förstår bättre.

Kod:
-- Detta är en enda SQL-sats om jobbar på hela databasen...

-- INSERT till nya tabellen
INSERT INTO IP.BLOG (WP_ID, entry_author_id, entry_date, entry, blog_id, blupp_id)

-- Hämta info från gamla tabellen med subselect för blog_id och ett exempel på¨en konstant
SELECT ID, post_author_id, post_date, post_excerpt , (SELECT  ...), 4
FROM Wordpress
-- Du kan ju även köra satsen för olika users individuellt
WHERE post_author=23;

Jag vet inte hur mappningarna är mellan tabellerna så du får gärna förklara mer för mig....

Om du lägger till en extra kolumn tillfälligt med ID från Wordpress tabellen så kan du köra update i IP.BLOG i efterhand och mappa ihop tabellerna med wordpress.ID och din nya IPBLOG.WP_ID ....

Senast redigerad av Conny Westh den 2010-12-31 klockan 14:06
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-31, 14:10 #5
pelmereds avatar
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: May 2010
Inlägg: 1 342
pelmered pelmered är inte uppkopplad
Har WN som tidsfördriv
pelmereds avatar
 
Reg.datum: May 2010
Inlägg: 1 342
Jag tycker Conny krånglar till det lite.

Kod:
insert into ip.blog (col1, col2, col3, col4) 
VALUES('col1', (select col2, col3, col4 FROM wordpres ) )
I det här exemplet sätter du värdet på "col1" direkt i queryn.
Col2-4 hämtar du ifrån din gamla databas. Här det det viktigt att kolumnerna är i exakt samma ordning i inserten(första parentesen) som de är i values-selecten.

Viktigt är också att det då är exakt samma format på datan. Är det inte exakt samma format på datan måste du nog göra ett script som gör en select-loop och konverterar datan för varje rad innan den stoppas in i den nya databasen med en insert-query.
pelmered är inte uppkopplad   Svara med citatSvara med citat
Oläst 2010-12-31, 14:15 #6
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Citat:
Ursprungligen postat av ITisGood.se Visa inlägg
Jag tycker Conny krånglar till det lite.

Kod:
insert into ip.blog (col1, col2, col3, col4) 
VALUES('col1', (select col2, col3, col4 FROM wordpres ) )
I det här exemplet sätter du värdet på "col1" direkt i queryn.
Col2-4 hämtar du ifrån din gamla databas. Här det det viktigt att kolumnerna är i exakt samma ordning i inserten(första parentesen) som de är i values-selecten.

Viktigt är också att det då är exakt samma format på datan. Är det inte exakt samma format på datan måste du nog göra ett script som gör en select-loop och konverterar datan för varje rad innan den stoppas in i den nya databasen med en insert-query.
Kod:
INSERT INTO ip.blog (col1, col2, col3, col4) 
SELECT 'val1', col2, 3, col4 FROM wordpress
Är betydligt enklare än att använda VALUES eftersom VALUES är mer oflexibelt än en regelrätt SELECT och VALUES inte tillför något i detta fall.

Det enda jag la till var lite förklarande texter/kommentarer så det skulle bli lättare att förstå.

Senast redigerad av Conny Westh den 2010-12-31 klockan 16:02
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-02, 13:40 #7
Mortekais avatar
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jan 2004
Inlägg: 587
Mortekai Mortekai är inte uppkopplad
Mycket flitig postare
Mortekais avatar
 
Reg.datum: Jan 2004
Inlägg: 587
Så här var det tänkt

INSERT INTO ibf_blog_entries
( blog_id,
entry_author_id,
entry_author_name,
entry_date,
entry_name,
entry,
entry_status,
entry_locked,
entry_edit_time,
entry_html_state,
entry_use_emo,
entry_last_update,
entry_name_seo,
entry_short)

SELECT {BLOG_ID},
{ENTRY_AUTHOR_ID},
{ENTRY_AUTHOR_DISPLAY_NAME},
UNIX_TIMESTAMP(post_date_gmt),
post_title,
post_content,
(CASE WHEN post_status = 'publish' THEN 'published' ELSE 'draft' END),
(CASE WHEN comment_status = 'open' THEN 0 ELSE 1 END),
UNIX_TIMESTAMP(post_modified_gmt),
1,
1,
UNIX_TIMESTAMP(post_modified_gmt),
post_name,
(CASE WHEN post_excerpt <> '' THEN post_excerpt ELSE NULL END)
FROM wp_posts
WHERE post_type = 'post';
Mortekai är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-01-02, 22:23 #8
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Bilderna i ditt första inläggär helt oläsbara nu, kan du lägga upp tabellstrukturerna igen gärna som create staments.... ?

Funderar mest på om bölog_id var PK i IP.BLOG eller inte....
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:43.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017